根据同一表单上组合框的值,在访问表单上填充文本框

时间:2012-08-21 14:43:12

标签: sql ms-access access-vba

  

可能重复:
  MSAccess - populate text box with value from query

我有一个表格,上面有几个组合框和文本框。一个组合框值(对于Wells)将被独立填充,然后我需要文本框使其值基于井组合框值的值。 我创建了一个部分解决了问题的查询,它需要井组合框值的参数。如果我运行查询表单中的一个部分,它会很好并要求参数,这没关系。 我确实想要使用VBA,添加一个处理SELECT语句的代码(上面提到的查询),然后告诉它从井组合值中获取其参数,该值将在表单上准备好。

有人可以为此提供帮助。这可以像我描述的那样工作。

提前致谢。

穆罕默德

除上述问题外,我还尝试了以下解决方案:

   Private Sub Well_ID_Change()
Last_Ref.ControlSource = " SELECT TOP1 New_Ref FROM" & _
" BSW_Transactions WHERE BSW_Transactions.New_Ref Is Not Null AND BSW_Transactions.Well_ID = " & Me.Well_ID.Value & _
" ORDER BY BSW_Transactions.Sample_Date DESC"
End Sub

Last_Ref是我想用代码中嵌入的SELECT语句的结果填写的文本框。 Well_ID是组合框,其值将是SELECT语句的参数。 Well_ID是数字字段,它显示well_name并将关联的ID值存储在表中。在保存更改后运行表单时,Last_Ref文本框显示(#Name?)。我猜测文本框(是一个数字字段)在组合框Well_ID中找到了一个文本,所以我在标准Me.Well_ID中将“.Value”添加到上面的语法中。但问题仍然存在。

我可能会误解语法,有人会对此有所帮助。这可行吗?

提前致谢。 穆罕默德

2 个答案:

答案 0 :(得分:0)

你这样做是错误的。将表单绑定到表格,向导将为您执行此操作,然后添加组合框。从向导中选择“在我的表单上查找记录”。将生成执行此操作的代码或宏。完成此操作后,在组合中选择一条记录将使用该记录的数据填充表单。

答案 1 :(得分:0)

在组合框的AfterUpdate事件中尝试此操作:

Private Sub MyTextBox_AfterUpdate()
   MyTextBox.ControlSource = DLookup("WellsField", "WellsTable", "CriteriaField = '" & [MyComboBox] & "'")
   MyTextBox.Requery
End Sub

这将告诉您的TextBox在Wells表中查找值,并且Requery确保每次更新组合框时值都是最新的。请注意DLookup标准部分中的'。只有字符串值才需要这些'