Как использовать инструкцию SQL SELECT с Access VBA

У меня есть combobox, значение которого я хочу использовать с предложением SQL WHERE. Как вы выполняете инструкцию SELECT внутри VBA на основе значения combobox?

Ответ 1

Если вы хотите использовать значение связанного столбца, вы можете просто обратиться к комбо:

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)

* изм

Ответ 2

Доступ 2007 может потерять CurrentDb: см. http://support.microsoft.com/kb/167173, поэтому в случае получения "Объект недействителен или больше не установлен" с примерами, используйте:

Dim db as Database
Dim rs As DAO.Recordset
Set db = CurrentDB
Set rs = db.OpenRecordset("SELECT * FROM myTable")

Ответ 3

Вот еще один способ использования оператора SQL SELECT в VBA:

 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"