シェアする

Accessで検索キーワードを入力するフォームを作成する手順

「氏名」を検索キーワードとするフォームを作成する手順を想定して説明します。

例えば、「氏名」を入力する欄に「山田」と入力すると、データベースの中から「山田」という文字列を含んでいるデータを抽出して表示する。というイメージです。

検索キーワードを入力するテキストボックスの設置

オブジェクト欄で、「フォーム」を選択し、右欄で「デザインビューでフォームを作成する」を選択します。その状態で、「新規作成」をクリックします。

スクリーンショット

「デザインビュー」を選択して、「OK」を押します。

スクリーンショット

下記のような何もないフォーム画面とツールボックスが表示されます。

「ツールボックス」の「ab|」をクリックして、フォーム上でもう一度クリックしま
す。

すると、下記の画面が表示されます。

この画面では、入力する文字のサイズや配置などを設定することが出来ます。あとで、変更することも出来るので、ここでは、そのまま「次へ」をクリックします。

すると、下記のような画面が表示されます。

赤枠のように入力モードを設定します。

今回は、氏名(漢字)を入力するので、「入力モード」を「オン」、「変換モード」を「一般」にします。

そして、「次へ」をくりっくします。

すると、下記のような画面が表示されますので、任意のテキストボックス名(ここでは、「氏名」としました)を入力して、「完了」をクリックします。

すると、下記のように何もなかったフォーム上に「テキストボックス(ここに検索キーワードを入力する)」が配置されます。

検索ボタンの設置

ツールボックスのボタンアイコンをクリックして、フォームの上でもう一度クリックし
ます。

コマンドボタンウィザードが起動しますが、ここではキャンセルをクリックして閉じます。

フォーム上にボタンが配置されます。

配置したボタンの上で、右クリックをしてメニューを表示させ、「プロパティ」をクリックします。

下記のように、コマンドボタンのプロパティが表示されますので、赤枠のように「名前」と「標題」を「検索」とします。

「名前」は、1つのフォーム上で重複するものを指定することはできません。

VBAで取り扱う対象名として利用するため、2つ以上同じ名前があると、どれを操作対象としているかわからなくなるためです。

「標題」は、コマンドボタンの上に表示されるもので、1つのフォーム上でも重複してかまいません。

つぎに、「クリック時」の右空白欄をクリックすると、…ボタンが表示されるので、そのボタンをクリックします。

ビルダの選択ボックスが展開されるので、「コードビルダ」を選択して、「OK」を押します。

VBAエディターが開くので、赤枠のようにコードを書きます。

コードは、Private Subで始まり、End Subで終わります。

検索_Click()は、検索という名前のついた部品(コントロールと言います)をクリックしたら、Private SubからEnd Subの間に記述したコードを実行してくださいという意味になります。

DoCmd.OpenFormというのは、フォームを開いてくださいという命令になります。

このコードに続く内容としては、まず、開きたいフォーム名を記述します。

ここでは、あらかじめデータをもとにした、「F_マスタ」という名前のフォームが作成ずみということにしてください。

詳しくは、下記を参照してください。

Accessの「単票形式」と「表形式」のフォームの作成手順

その後ろにカンマを3つつけた後、抽出する条件文を書きます。

likeの前の「氏名」は、「F_マスタ」のもとになっているデータ(テーブル)の項目名を示します。

そして、likeは、部分一致を示します。Me!というのは、現在操作するフォーム(つまり、「F_検索」)自信のことを示します。

したがって、Me!名前というのは、F_検索フォームの中にある名前というコントロール(つまり、6で名前を名前とつけたもの、検索キーワードを入力する空白部分)ということになります。

その前後に*がついているのは、検索キーワードの前後に任意の文字があってもかまわない(部分一致であればよいことを示しています。)

VBAエディターを×ボタンで閉じます。

15.作成したフォームを✖️ボタンで閉じようとすると、フォーム名をつけるように要求されるので、任意のフォーム名(ここでは、「F_検索」というフォーム名をつけて閉じます。

動作テスト

「F_検索」をダブルクリックして開きます。
氏名に「山田」と入力して「検索」ボタンを押します。

すると、「山田」という文字が含まれる人の名前が表示されます。

本記事では、テーブルやクエリー、それを元にしたフォームが作成済みであることを前提に、フォームの動きだけに着目して説明しました。

そもそも、テーブルやクエリー、それを元にしたフォームの作成方法がわからない方は、以下を参照してください。

Accessで検索システムを作成する手順

ちなみに、Accessでは、リレーションシップやフォームの作成についても詳細に設定をすることなどができます。

それ以外にも、マクロというコードを簡略化したものを使うこともできます。
(個人的には、コードですべて記述する方が、のちのちメンテナンスしやすいと思いますが。)

いずれにしても、フォームの体裁など細かい点については、後で学習することにして、まずは、ここで説明した基本的な流れを作成することができるようになれば、Accessが身近に感じられるようになると思います。

最後に、ここまで説明したAccessのファイルを用意しました。下記からダウンロードできます。