我有一个 MS Access 表单,它有一个名为cboProjectID
. 我正在尝试以某种方式创建表单,以便在cboProjectID
组合框中进行选择后,它会触发另一个组合框cboErrCod1
,以根据组合框中选择的 project_id 可用的错误代码来显示错误代码cboProjectID
。
只有某些错误代码可用于某些项目 ID,并且这些代码在另一个表中定义。但是,我创建了一个名为 associate 的查询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 组合框字段的“on change”命令:
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 阅读的编码方法。Access 显示的是每种类型的Error_Reason_Code
,而不是与组合框中Error_Reason_Code
选择的项目 ID 相关的特定 。cboProjectID
有人可以指出我正确的方向,让此代码显示在Error_Reason_Code
cboErrCod1 组合框中的 's 上,仅与组合框中的Project_ID
选定内容有关cboProjectID
吗?