独自機能の追加
1 氏名による検索(前方・後方一致あいまい検索)
BindingSourceのスマートタグ(右上の三角)から「クエリの追加」を行う。
「条件検索ビルダー」が起動するので、クエリテキストを次のように変更する。
Sql文がうまく書けない人は、SQLSeverManagementStudioでビューを作成するときのようなグリッド形式のGUIも使うことができる。
——————————————————————-
SELECT Id, Name, 〒No, Address, Tel, Email FROM table名
WHERE Name LIKE ‘%’+ @パラメータ名 + ‘%’
——————————————————————-
SQL 文では文字列をシングルクォーテーションで挟む。パラメータクエリのパラメータの前後に、シングルクォーテーションで挟んだ「%」の文字列を加えると、部分一致のクエリになる。%田%であれば、田中・中田・小田原などが検索対象となる。
クエリが完成すると
BindingNavigatorの下に、パラメータ名のラベルとパラメーター入力用のテキストボックス、クエリ名のボタンが配置されたfillByToolStripが貼りつく。
パラメータを入れ、ボタンをクリックすると以下のイベントハンドラーが呼び出される。
(注:fillByの引数等は設定で異なる)
private void fillByToolStripButton_Click(object sender, EventArgs e)
{
try
{
this.テーブル名TableAdapter.FillBy(this. データセット名DataSet.Table, textToolStripTextBox.Text);
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
}
これを参考に、独自にTextBox、Buttonを配置してデザインすることも可能、先に示した画面サンプルではデフォルトで貼りついたもののデザイン(fontやtext)を変更して見やすくしただけのもの。
2 住所による検索
例えば、「東京」都在住、「大阪市」在住などを検索するために、1のNameをAddressに変更すれば
よいことになる。完成したらもう一つfillByToolStripが貼りつく。
これも独自にフォームのデザインをしてもよい。
3 検索結果の解除(全件表示に戻る)
検索結果を確認したら、元に戻す必要がある。そのためのボタンとクリックイベントを記述する。
画面サンプルでは、1つ目のfillByToolStripにボタンを追加して「検索解除」のボタンとして配置した。もちろん独自にボタンをフォーム上に配置してもよい。
コードは以下の通り。Fillを使っていることがわかる。
private void fillToolStripButton_Click(object sender, EventArgs e)
{
try
{
this. テーブル名TableAdapter.Fill(this.データセット名DataSet.Table);
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
}
住所録の基本機能としてはこんなところか。変更や更新の確認など、細かい点は最後にする。
次回は、〒番号の検索である。イメージは何となく分かっていたものの、AccessのVBAでは経験したことのない落とし穴にはまることになるとは、予想もしなかった。