このアクセスチュートリアルでは、複数の条件を持つ検索フォームを作成する方法を説明します。
また読みたいと思う場合もあります:
アクセスDoCmd。アクセスフォームを開くOpenFormメソッド
アクセスコンボボックスの値は別のコンボボックスに依存します
アクセスフォームを返すレポートやフォームやクエ 最も簡単な解決策は、ExcelでAutoFilterを使用するように各フィールドのデータを直接フィルター処理することですが、これはまったくエレガントではありません。
Accessは、非常に使いやすいFilter by Formと呼ばれるフォーム関数を提供します。
テーブル/クエリの選択>作成>フォーム>フィルタ/ソートの適用
今、あなたは複数の基準を選択することができます、あなたもドロップダウンボックスから値を選択することができます。 しかし、ドロップダウンボックスのこれらの値は互いに独立しています。
OrタブをクリックしてOr基準を使用することもできます。
選択が完了したら、フィルタの切り替えをクリックします
フィルタリングを行うより良い方法は、ユーザーが依存するドロップダウンボックスから選択することです。
たとえば、最初のドロップダウンボックスでは、ユーザーが部門Aを選択し、2番目のドロップダウンボックスでは、ユーザーが部門Aの人のリストを表示できます。
この記事では、このようなフィルタリングを行う方法を説明します。
結果フォームを作成する
以下のようなクエリがあると仮定します。 私たちの目標は、ユーザーが従業員情報を表示するために部門を選択するか、部門+従業員IDを選択できるようにすることです。
検索結果を表示する”結果フォーム”を作成します。
部門 | 従業員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 |
クエリをクリックし、[作成]タブの下にある[その他のフォーム]>データシートを選択します
フォームをresult_frmとして保存します。 誤って結果データを変更する場合は、各テキストボックスのLockedプロパティをYesに変更する必要があります
この例では、Query1のすべてのフィールドを結果形式で返します。 各レコードは水平スクロールバーで一列に表示できるので、データシートを選択します。 各レコードは複数の行に表示されるため、連続フォームまたは単一フォームを使用することは好みません。
検索フォームを作成する
空白のフォームを作成し、以下に示すように二つのコンボボックス(Combo_Dept、Combo_Empid)と一つのボタン(search_btn)を追加します。
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
これで、単純な検索フォームが正常に作成されました。 検索フォームで条件を選択した後、検索ボタンをクリックすると、結果フォームがポップアップ表示され、結果が表示されます。