「DB参照ボタン」のとき、以下の設定を行います。
- DSN
データベースを指定するための識別名(Data Source Name)を入力します。
(参考)
■ Microsoft SQL Server 2014 ~ 2019
Provider=sqloledb;Data Source=サーバー名;User Id=ユーザーID;Password=パスワード;Initial Catalog=データベース名
■ Access(*.accdb または *.mdb)
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=パス\データベース名.accdb(または.mdb)
* ODBCドライバーが Access 2010 のDSNです。
■ 外部のDSN定義参照
DSNxxx または dsnxxx (xxxは任意の文字列)と入力します。DSNxxxの実際の内容はオプション環境ファイル(option.config)に定義します。(*1)
詳しくは「環境ファイル・リファレンスガイド」の「オプション環境ファイル(option.config)」を参照してください。
■ SQL Server 以外へ接続する場合は、接続の容易性から SQL Server のリンクサーバーとシノニムの利用をおすすめします。 - SQL文
SQL文を入力します。
(参考)
データベース参照画面で検索条件を入力するにはパラメータ変数を使用します。
パラメータ変数は10項目まで設定可能です。
パラメータ変数は以下の通りです。
#i-xxxx 数値型
#c-xxxx 文字型(参照先テーブルのデータ型がUnicodeでないとき)
N#c-xxxx 文字型(参照先テーブルのデータ型がUnicodeのとき)
#d-xxxx 日付型
(例) select * from 社員マスタ where 社員番号 between #i-開始番号 and #i-終了番号
■ デフォルト値設定
パラメータ変数にデフォルト値を設定するにはパラメータ変数に =値 を付加します。
(例) select * from 社員マスタ where 社員番号 between #i-開始番号=0 and #i-終了番号=999
また、デフォルト値にフォームの項目の値を設定するにはパラメータ変数に =[項目名称] を付加します。
(例) select * from 社員マスタ where 作成日付 >= #d-日付=[登録日]
上記のデフォルト値をデータベース参照画面の検索条件で非表示にするにはパラメータ変数を ={項目名称} にします。(*2)
(例) select * from 社員マスタ where 作成日付 >= #d-日付={登録日}
■ 曖昧検索
パラメータ変数で文字列の曖昧検索を行うには以下のように like およびパラメータ変数の前後に % を付加します。
(例) select * from 社員マスタ where 社員名称 like #c-%名称%
■ 即時検索
SQL文にパラメータ変数が含まれている場合、データベース参照画面では[検索開始]をクリック/タップすることでデータベース参照を実行します。
データベース参照画面で[検索開始]をクリック/タップすることなくデータベース参照を実行するには、SQL文の select を QK_select(または qk_select) へ置き換えます。(*3)
FormPat のフォームから入力されたデータを当機能で参照することも可能です。(*4)
以下が設定方法です。
- DSN
DSN または dsn と入力します。(*1) - SQL文
SQL文は select を FP_select へ置き換えます。
テーブル名をFormPatの「フォーム設定」画面の「フォームID」に置き換えます。
where句の複数条件の組み合わせは and演算子 のみ使用できます。また、( )は使用できません。
その他は通常のSQL文で記述できます。
(例) FP_select 社員コード,社員名 from form-16 where 社員コード >= #i-開始社員コード=0 and 社員コード <= #i-終了社員コード=99999999
(注意点)
FormPat v8.4.x 以前では、FP_select ではwhere句の記述は必須です。
where句で条件として指定した項目は、FP_select句の項目に必ず定義してください。
定義されない場合、実行時に「データベースを検索できません。SQL文を確認してください。」のメッセージが表示されます。
where句で記述するカラム名の前後には半角空白が必要です。
(留意点)
FormPatのデータベース参照の検索結果の表示項目は、FP_select句の項目ではなくFormPatの「フォーム設定」画面の「表題要素」になります。
パラメータ変数の文字型は N#c-xxxx を使用します。
また、検索対象データの更新日を範囲指定することでレスポンス向上を見込めます。(*5)
where句に #update_range=1y (直近2年は2y, 2月は2m, 2日は2d)等を指定します。
*1 FormPat v5.0.2.0 以降の機能です。
*2 FormPat v8.0.0 以降の機能です。
*3 FormPat v8.1.0 以降の機能です。
*4 データ件数が500件程度までのフォームで使用してください。
*5 FormPat v9.0.0 以降の機能です。