と呼ばれるコンボ ボックス (主キーとして機能する) を持つ MS Access フォームがありますcboProjectID
。コンボ ボックスで選択が行われると、コンボ ボックスで選択された project_id で使用可能なものに基づいてエラー コードを表示するためにcboProjectID
呼び出される別のコンボ ボックスがトリガーされるように、フォームを作成しようとしています。cboErrCod1
cboProjectID
特定のプロジェクト ID では特定のエラー コードのみを使用でき、それらは別のテーブルで定義されています。HDR_ERRCODES
ただし、関連するというクエリを作成しProject_ID
、Project_Code
可能性Error_Reason_Code
がある特定のproject_Id
.
たとえば、プロジェクト コード (cboProjectID コンボ ボックスから選択) は、"FI-01-05"、"FI-01-01"、"SY-02-02" など) のようになります。選択すると、Project_ID
はテーブルProject_DTA_REV_T
(フォームがその情報を格納するテーブル) に格納され、Project_ID
は単純に次の番号 (1、2、3、4 など) になります。
VBA コードを実行するときに複数の値を返すには、Recordset を使用する必要があることを理解しています。これは私が始めたコードですが、cboProjectIDコンボボックスフィールドの「変更時」コマンドでは機能していないようです:
Private Sub cboProjectID_Change()
Dim VarComboKey As Integer
Dim dbs As DAO.Database
Dim Err1 As DAO.Recordset
VarComboKey = Me.cboProjectID.Value
Set dbs = CurrentDb
Set Err1 = dbs.OpenRecordset("SELECT DISTINCT [Error_Reason_Code] FROM [HDR_ErrCodes] WHERE [project_ID] = " & VarComboKey)
Do While Not Err1.EOF
Me!cboErrCod1 = Me!cboErrCod1 & Err1!Error_reason_code & " "
Err1.MoveNext
Loop
Err1.Close
Set Err1 = Nothing
End Sub
私は VBA の専門家ではなく、Recordset のこの Web サイトで読んだコーディング方法論に従おうとしています。Access は、コンボ ボックスで選択されたプロジェクト ID に関連するError_Reason_Code
特定の ではなく、すべてのタイプの を表示しています。Error_Reason_Code
cboProjectID
誰かがこのコードをError_Reason_Code
cboErrCod1 コンボ ボックスのProject_ID
に表示する正しい方向に向けることができますかcboProjectID
?