注: 私は Access に比較的慣れていないので、ご容赦ください... 私が学んだことはすべて、必要に応じて Google を検索することでした。
そのため、データベースを検索することのみを目的としてフォームを作成しています。あるユースケースでは、ユーザーは複数のオプションを選択して検索をフィルタリングするオプションを持っています。プライバシー上の理由から、「青、緑、赤、茶色」と言うことができます。ユーザーは、これらの色の任意の組み合わせを選択することができます。データベース テーブルには、主キー (この場合は ItemID) があります。表の他の列は上記の色です (青、緑、赤、茶)。このデータは構造化されているため (注: 複数の理由で変更できません)、Access が提供するものを使用するのではなく、VBA でこの SQL クエリを作成する必要があります。
「検索」ボタンが押されたときにクエリを作成して実行するために使用しているコードは次のとおりです。
Set qdf = Nothing
*Logic to create SQL query... variable to hold query is called sqlStr*
Set qdf = CurrentDb.CreateQueryDef("TemporaryQuery", sqlStr)
DoCmd.OpenQuery qdf.Name
多くの検索の結果、これは、ADO を使用する以外に、VBA で SQL クエリを作成し、VBA で実行できる唯一の方法であることがわかりました。この方法の欠点は、機能する一方で、クエリが作成されることです。クエリを再度実行するには、クエリを閉じて削除する必要があります。これは、これを使用するユーザーには受け入れられません。
私が見つけたすべての例 (ご容赦ください) は ADO を使用していますが、これは機能しませんでした。2 つのデータベースがあり、1 つはクエリとフォーム用、もう 1 つはデータ自体用です。データを含むデータベースには、クエリとフォームを使用してデータベースにリンクされたテーブルがあります。そのセットアップで ADO が動作するかどうかはわかりませんが、動作する場合は、まだわかりません。
Java/Webdev のバックグラウンドから Access を使用することは、(私の意見では) 本来あるべきことをより複雑にしているように見えるので、少しイライラしています。これを正しく機能させるのを手伝ってくれる人はいますか?
お時間をいただきありがとうございます...それは大歓迎です!