Questo tutorial contiene esempi di utilizzo di SQL con VBA Access. Come vedrai di seguito, per eseguire query SQL in Access con VBA puoi utilizzare sia il DoCmd.RunSQL o CurrentDb.Execute metodi.
SQL Select
Questo esempio utilizzerà l'istruzione SQL Select per aprire un recordset:
Dim rs As Recordset Set rs = CurrentDb.OpenRecordset("select * from Table1 dove num=0", dbOpenDynaset)
Tabella di aggiornamento SQL
Questa riga di codice VBA utilizza il metodo DoCmd.RunSQL per aggiornare una tabella:
DoCmd.RunSQL ("UPDATE table1 SET num =0 dove num=999")
Oppure puoi usare il metodo .Execute dell'oggetto database:
CurrentDb.Execute "UPDATE table1 SET num =0 dove num=999"
Tabella di modifica SQL
Questa riga di codice VBA utilizza DoCmd.RunSQL per modificare una tabella:
DoCmd.RunSQL ("ALTER TABLE Table3 ADD COLUMN Salary money")
Oppure con il metodo .Execute dell'oggetto database:
CurrentDb.Execute "ALTER TABLE Table3 ADD COLUMN Salary money"
Drop Table
Questa riga di codice VBA utilizza DoCmd.RunSQL per modificare una tabella:
DoCmd.RunSQL ("DROP Table Table1")
Oppure con il metodo .Execute dell'oggetto database:
CurrentDb.Execute "DROP Table Table1"
Elimina SQL
Questo codice utilizza DoCmd.RunSQL per eliminare i record da una tabella:
DoCmd.RunSQL ("DELETE FROM table1 dove num=999")
Oppure con il metodo .Execute dell'oggetto database:
CurrentDb.Execute "DELETE FROM table1 dove num=999"
SQL Inserisci in
Questa istanza di DoCmd.RunSQL inserisce record in una tabella:
DoCmd.RunSQL ("INSERT INTO Table1 ( LastName, dob, num ) VALUES ('L1',#01/01/2001#,78)")
Oppure con il metodo .Execute dell'oggetto database:
CurrentDb.Execute "INSERT INTO Table1 ( LastName, dob, num ) VALUES ('L1',#01/01/2001#,78)"
SQL Crea tabella
Questo codice creerà una tabella usando SQL:
CurrentDb.Execute "CREATE TABLE Table1 (KeyID COUNTER CONSTRAINT PrimaryKey CHIAVE PRIMARIA, Field1 TEXT, Field2 TEXT)"
Oppure con il metodo .Execute dell'oggetto database:
CurrentDb.Execute "CREATE TABLE Table1 (KeyID COUNTER CONSTRAINT PrimaryKey CHIAVE PRIMARIA, Field1 TEXT, Field2 TEXT)"
Crea indice
Questa riga di codice VBA utilizza DoCmd.RunSQL per modificare una tabella:
DoCmd.RunSQL ("CREATE INDEX " & IndexName & " ON " & TableName & "(" & ColumnName & ");")
Oppure con il metodo .Execute dell'oggetto database:
CurrentDb.Esegui "CREATE INDEX " & IndexName & " ON " & TableName & "(" & ColumnName & ");"
Indice di caduta
Questa riga di codice VBA utilizza DoCmd.RunSQL per modificare una tabella:
DoCmd.RunSQL "DROP INDEX ID ON Table1;"
Oppure con il metodo .Execute dell'oggetto database:
CurrentDb.Execute "DROP INDEX ID ON Table1;"
Crea database
Questo codice creerà un database (no SQL):
Access.DBEngine.CreateDatabase "c:\Temp\testDB1.accdb", DB_LANG_GENERAL
Query SQL
Apri domanda
Puoi usare DoCmd.OpenQuery per aprire una query salvata:
DoCmd.OpenQuery "qry_1", acViewNormal, acEdit
Esegui query
CurrentDB.Execute eseguirà una query:
CurrentDb.Execute "qry_1", dbFailOnError
Esporta query in Excel
DoCmd.OutputTo esporterà una query in Excel:
DoCmd.OutputTo acOutputQuery, "Query1", acFormatXLS, "c:\temp\ExportedQuery.xls"