У меня есть combobox, значение которого я хочу использовать с предложением SQL WHERE. Как вы выполняете инструкцию SELECT внутри VBA на основе значения combobox?
Как использовать инструкцию SQL SELECT с Access VBA
Ответ 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"