このアクセスチュートリアルでは、複数の条件を持つ検索フォームを作成する方法を説明します。

また読みたいと思う場合もあります:

アクセスDoCmd。アクセスフォームを開くOpenFormメソッド

アクセスコンボボックスの値は別のコンボボックスに依存します

アクセスフォームを返すレポートやフォームやクエ 最も簡単な解決策は、ExcelでAutoFilterを使用するように各フィールドのデータを直接フィルター処理することですが、これはまったくエレガントではありません。

Accessは、非常に使いやすいFilter by Formと呼ばれるフォーム関数を提供します。

テーブル/クエリの選択>作成>フォーム>フィルタ/ソートの適用

access_search_form_11

今、あなたは複数の基準を選択することができます、あなたもドロップダウンボックスから値を選択することができます。 しかし、ドロップダウンボックスのこれらの値は互いに独立しています。

OrタブをクリックしてOr基準を使用することもできます。

access_search_form_12

選択が完了したら、フィルタの切り替えをクリックします

access_search_form_13

フィルタリングを行うより良い方法は、ユーザーが依存するドロップダウンボックスから選択することです。

たとえば、最初のドロップダウンボックスでは、ユーザーが部門Aを選択し、2番目のドロップダウンボックスでは、ユーザーが部門Aの人のリストを表示できます。

この記事では、このようなフィルタリングを行う方法を説明します。

結果フォームを作成する

以下のようなクエリがあると仮定します。 私たちの目標は、ユーザーが従業員情報を表示するために部門を選択するか、部門+従業員IDを選択できるようにすることです。

検索結果を表示する”結果フォーム”を作成します。

クエリ1
部門 従業員ID 雇用日 給与 手当
アカウント 1 1/1/2000 10000 100
管理者 2 1/1/2001 20000 200
管理者 3 1/1/2002 30000 300
管理者 4 1/1/2003 40000 400
5 1/1/2004 50000 500
HR 6 1/1/2005 60000 600

クエリをクリックし、[作成]タブの下にある[その他のフォーム]>データシートを選択します

access_search_form

フォームをresult_frmとして保存します。 誤って結果データを変更する場合は、各テキストボックスのLockedプロパティをYesに変更する必要があります

access_search_form_04

この例では、Query1のすべてのフィールドを結果形式で返します。 各レコードは水平スクロールバーで一列に表示できるので、データシートを選択します。 各レコードは複数の行に表示されるため、連続フォームまたは単一フォームを使用することは好みません。

検索フォームを作成する

空白のフォームを作成し、以下に示すように二つのコンボボックス(Combo_Dept、Combo_Empid)と一つのボタン(search_btn)を追加します。

access_search_form_05

1) Combo_Deptをクリックし、Row Sourceプロパティに

SELECT DISTINCT Department FROM Query1;

Row Sourceと入力しますComboBoxで選択できるものです。

2)Combo_Empidをクリックし、行Sourceプロパティに次のように入力します

SELECT FROM Query1 WHERE =!!;

3) Combo_Deptを選択し、Update Eventの後に選択し、以下の手順をビルドします

Private Sub Combo_Dept_AfterUpdate() Me.Combo_EmpID = Null Me.Combo_EmpID.RequeryEnd Sub

部門を選択すると、Combo_EmpidはNullにリセットされ、クエリを再実行します

4)search_btnを右クリックし、ビルドイベント

Private Sub search_btn_Click() If IsNull(Me.Combo_EmpID) Then searchCriteria = "='" & Me.Combo_Dept & "'" searchSQL = "Select * FROM Query1 where " & searchCriteria Else searchCriteria = "='" & Me.Combo_Dept & "' AND =" & Me.Combo_EmpID searchSQL = "Select * FROM Query1 where " & searchCriteria End If DoCmd.OpenForm "result_frm", 3, searchSQLEnd Sub

これで、単純な検索フォームが正常に作成されました。 検索フォームで条件を選択した後、検索ボタンをクリックすると、結果フォームがポップアップ表示され、結果が表示されます。

コメントを残す

メールアドレスが公開されることはありません。