【发布时间】:2012-06-16 12:54:51
【问题描述】:
我有一个组合框,我想将其值与 SQL WHERE 子句一起使用。如何在 VBA 中根据组合框值运行 SELECT 语句?
【问题讨论】:
我有一个组合框,我想将其值与 SQL WHERE 子句一起使用。如何在 VBA 中根据组合框值运行 SELECT 语句?
【问题讨论】:
如果您想使用绑定的列值,您可以简单地参考组合:
sSQL = "SELECT * FROM MyTable WHERE ID = " & Me.MyCombo
也可以参考列属性:
sSQL = "SELECT * FROM MyTable WHERE AText = '" & Me.MyCombo.Column(1) & "'"
Dim rs As DAO.Recordset
Set rs = CurrentDB.OpenRecordset(sSQL)
strText = rs!AText
strText = rs.Fields(1)
在文本框中:
= DlookUp("AText","MyTable","ID=" & MyCombo)
*已编辑
【讨论】:
Access 2007 可能会丢失 CurrentDb:请参阅 http://support.microsoft.com/kb/167173,因此如果出现 "Object Invalid or no longer set" 示例,请使用:
Dim db as Database
Dim rs As DAO.Recordset
Set db = CurrentDB
Set rs = db.OpenRecordset("SELECT * FROM myTable")
【讨论】:
这是在 VBA 中使用 SQL SELECT 语句的另一种方法:
sSQL = "SELECT Variable FROM GroupTable WHERE VariableCode = '" & Me.comboBox & "'"
Set rs = CurrentDb.OpenRecordset(sSQL)
On Error GoTo resultsetError
dbValue = rs!Variable
MsgBox dbValue, vbOKOnly, "RS VALUE"
resultsetError:
MsgBox "Error Retrieving value from database",VbOkOnly,"Database Error"
【讨论】: