【发布时间】:2013-03-11 15:15:34
【问题描述】:
有没有办法自动填充 MS Access 表单中的字段?假设用户从表单上的特定组合框中进行选择,是否可以根据 PK 自动选择表单上的其他字段?
我想补充一点,要自动填充的字段将来自不同的表..
***修正
在组合框中选择特定记录后,我需要返回多个值。有人可以帮忙吗?多个值将来自返回如下值的查询:
ID Code Count
24 TST 4
24 BPB 7
24 SSS 10
在表单中,组合框将选择 ID 号。一旦我选择了 24 的 ID 号,我想返回来自名为 Project_Error_Final 的查询的所有 3 条记录(在此示例中,有 3 个值要返回,但我希望查询返回 ID = 24 的任何记录)。我到目前为止的 VBA 代码是:
Private Sub cboProjectID_Change()
Dim VarComboKey As Integer
Dim VarObjective As Variant
Dim VarStartDate As Variant
Dim VarEndDate As Variant
Dim VarRiskCategory As Variant
Dim VarTarDatSet As Variant
Dim VarErrorCount As Variant
Dim VarErrorCode As Variant
VarComboKey = Me.cboProjectID.Value
VarObjective = DLookup("[Objective]", "[Project_HDR_T]", "[Project_ID] = " & VarComboKey)
Me.txtObjective = VarObjective
VarStartDate = DLookup("[Start_Date]", "[Project_HDR_T]", "[Project_ID] = " & VarComboKey)
Me.txtStartDate = VarStartDate
VarEndDate = DLookup("[End_Date]", "[Project_HDR_T]", "[Project_ID] = " & VarComboKey)
Me.txtEndDate = VarEndDate
VarRiskCategory = DLookup("[Risk_Category]", "[Project_HDR_T]", "[Project_ID] = " & VarComboKey)
Me.txtRiskCategory = VarRiskCategory
VartxtTarDatSet = DLookup("[Targeted_Dataset]", "[Project_Targeted_Dataset]", "[Project_ID] = " & VarComboKey)
Me.txtTarDatSet = VartxtTarDatSet
VarErrorCount = DLookup("[Count_Error_Codes]", "[Project_Error_Final]", "[project_ID] = " & VarComboKey)
Me.txtErrorCount = VarErrorCount
VarErrorCode = DLookup("[ErrorCode]", "[Project_Error_Final]", "[project_ID] = " & VarComboKey)
Me.txtErrorCode = VarErrorCode
End Sub
有问题的值是 VarErrorCount 和 VarErrorCode。在上面的 VBA 代码中,只返回一个值。但是,一旦选择了 ID 组合框字段,我正在寻找要在我的表单中返回的多个 VarErrorCount 和 VarErrorCode 值。在此特定示例中,VarErrorCode 应返回“TST”、“BPB”和“SSS”。 VarErrorCount 应返回相应的 VarErrorCode 值:“4”、“7”、“10”
【问题讨论】:
-
为什么不使用包含所有相关表的查询和带有绑定控件的绑定表单? MS Access 让生活变得非常轻松,几乎所有事情都可以在没有代码的情况下完成。应该没有必要做上面这么复杂的事情。
-
这仍然没有回答如何为特定字段返回多个值的问题。我明白你的意思。即使我只是使用查询而不是上面的代码,我仍然会遇到为每个 ID 返回多个错误代码和错误计数的问题。无论如何,我需要多个查询来引用我的表格;一个是 Project_Error_Final,它汇总了上面输出中的数字。
-
您好,用户 1195703。我很乐意看看这个。一般来说,我还建议您将来在这些情况下提出一个新问题。我担心的是,由于您已经接受了我对您最初问题的回答,您可能无法将赏金奖励给任何可能回答您修改后的问题的人。
-
您能否确认您是否预计会出现除“TST”、“BPB”和“SSS”之外的 [Code] 值吗?最简化的答案取决于您是始终只希望这三个代码的计数,还是希望所有可能代码的计数(您的表单上可能有三个以上的字段,或者始终只显示前 3 个)
-
您能否提供更多关于您如何使用此表单的信息?这是用作报告吗?
标签: forms ms-access return-value multiple-instances auto-populate