1

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

有人可以帮忙吗。这可以像我描述的那样工作吗?

提前致谢。

穆罕默德

除了我上面的问题,我尝试了以下解决方案:

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”添加到上述语法中。然而问题依然存在。

我可能在语法上弄错了,有人会帮忙吗?这可以正常工作吗?

提前致谢。穆罕默德

4

1 回答 1

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 ,因为它不是必需的

于 2012-08-23T07:58:18.107 回答