0

私のAccessデータベースでは、非常に複雑な検索と検索のルーチンを実行しようとしています。基本的に、これらの4つのテーブルで検索する4つの基準があります。日付、サービス、コード、および機能です。

この情報を使用して、テーブルに移動し、フィールドと1つの基準を検索します。4つの基準のいずれかに対応する行を見つけたら、正しく一致したすべての行の隣接フィールドの値を保存します。この後、隣接するすべてのフィールドの値を配列として保存したいと思いました。次に、これらの手順を繰り返して、4つの検索すべてを4つの個別の配列として保存しました。

私のテーブルの関係は次のとおりです。

テーブルの関係

リクエストである「Demande」を受け取ります。そのリクエストには、日付、サービス、コード、機能の4つの基準があります。

テーブル「Services_YES」で、需要に対応するサービスを探します。

テーブル「 Pool_Personnel 」で、需要に対応する関数を探します。

テーブル「Days_Available」で、需要に対応する日付コード(Code_Horaireと呼ばれる)の両方を探します。

そこから、見つかったすべての結果について各Code_Personalを記録し、3つのテーブルすべてで一致するCode_Personalを見つけたいと思っていました。


だから私の質問:

基準行に対応するすべてのコードの配列を作成する検索および検索機能を実行するにはどうすればよいですか?

説明に役立つ疑似コードを作成しました。誰かがこれを実際のVBAに変換できる場合に備えて:

While demandeTable.functionField.Value = poolpersonnelTable.Fonction1Field.Value
  get all poolpersonnelTable.codepersonalField.Value for all rows that match
  save fonctionArray = codepersonalField.Values
Loop

私はこの「フィルタリング」を完了する方法に非常に固執しており、すべての助けを強く感謝します。

4

1 に答える 1

0

VBAを使用することは答えではありません。

最終的にクエリを作成し、ユーザーが入力したテキストを使用してクエリの可変部分に入力しました。

comboService = Chr(34) & Me.Combo8.Value & Chr(34)
txtDate = Chr(34) & Me.Text15.Value & Chr(34)
comboCodeHoraire = Chr(34) & Me.Combo17.Value & Chr(34)

"SELECT tblPoolPersonnel.LName, tblPoolPersonnel.FName, tblPoolPersonnel.[Tel Natel], tblPoolPersonnel.[Tel Home], tblPoolPersonnel.Email" & vbCrLf
"FROM ((tblPoolPersonnel INNER JOIN tblFonction ON tblPoolPersonnel.Code_Personal = tblFonction.Code_Personel) INNER JOIN tblDayAvailable ON tblPoolPersonnel.Code_Personal = tblDayAvailable.Code_Personal) INNER JOIN tblServiceYES ON tblPoolPersonnel.Code_Personal = tblServiceYES.Code_Personal" & vbCrLf
"WHERE (((tblServiceYES.Service)=" & comboService & ") AND " + _
                "((tblDayAvailable.Availability)=True) AND " + _
                "((tblDayAvailable.Date)=" & txtDate & ") AND " + _
                "((tblDayAvailable.CodeHoraire1)=" & comboCodeHoraire & "))"
于 2012-11-18T14:33:32.093 に答える