Ho una casella combinata di cui voglio utilizzare il valore con una clausola WHERE SQL. Come si fa a eseguire un'istruzione SELECT all'interno di VBA in base al valore della casella combinata?Come utilizzare un'istruzione SQL SELECT con Access VBA
10
A
risposta
20
Se si desidera utilizzare il valore colonna associata, si può semplicemente fare riferimento alla combinata:
sSQL = "SELECT * FROM MyTable WHERE ID = " & Me.MyCombo
Si può anche fare riferimento alla proprietà della colonna:
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)
In una casella di testo:
1
Ecco un altro modo di utilizzare l'istruzione SQL SELECT
in 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"
6
Access 2007 può perdere la CurrentDb: vedi http://support.microsoft.com/kb/167173, quindi in caso di ottenere "Oggetto non valido o non impostato" con gli esempi, l'uso:
Dim db as Database
Dim rs As DAO.Recordset
Set db = CurrentDB
Set rs = db.OpenRecordset("SELECT * FROM myTable")
Grazie. Non creerà solo una stringa contenente istruzioni SQL? –
Sì. La tua domanda non include alcuna informazione su cosa vuoi fare con la dichiarazione where. – Fionnuala
+ 1 Semplice :) –