使用查询基于组合框值获取其值的文本框

时间:2012-08-22 20:18:29

标签: sql vba ms-access ms-access-2007

我有一个表格,上面有几个组合框和文本框。一个组合框值(对于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”添加到上面的语法中。但问题仍然存在。

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

提前致谢。穆罕默德

1 个答案:

答案 0 :(得分:0)

问题是文本框的控件源不能像组合框或列表框那样设置,需要传递值,例如:

Private Sub Well_ID_Change()

Dim rs As Recordset    

Set rs = CurrentDb.OpenRecordset("SELECT TOP1 [New_Ref] FROM" & _
" [BSW_Transactions] WHERE [BSW_Transactions].[New_Ref] Is Not Null" & _
" AND [BSW_Transactions].[Well_ID] = " & Me.Well_ID & _
" ORDER BY [BSW_Transactions].[Sample_Date] DESC", dbOpenSnapShot)

rs.MoveFirst
Last_Ref = rs![New_Ref]
rs.Close
Set rs = Nothing

End Sub

我还从你的组合框中再次删除.Value,因为它不是必需的