Dieses Tutorial enthält Beispiele für die Verwendung von SQL mit VBA Access. Wie Sie unten sehen werden, können Sie zum Ausführen von SQL-Abfragen in Access mit VBA entweder die DoCmd.RunSQL oder CurrentDb.Execute Methoden.
SQL-Auswahl
In diesem Beispiel wird die SQL Select-Anweisung verwendet, um ein Recordset zu öffnen:
Dim rs As Recordset Set rs = CurrentDb.OpenRecordset("select * from Table1 where num=0", dbOpenDynaset)
SQL-Aktualisierungstabelle
Diese VBA-Codezeile verwendet die DoCmd.RunSQL-Methode, um eine Tabelle zu aktualisieren:
DoCmd.RunSQL ("UPDATE table1 SET num =0 where num=999")
Oder Sie können die .Execute-Methode des Datenbankobjekts verwenden:
CurrentDb.Execute "UPDATE table1 SET num =0 wobei num=999"
SQL-Alterungstabelle
Diese VBA-Codezeile verwendet DoCmd.RunSQL, um eine Tabelle zu ändern:
DoCmd.RunSQL ("ALTER TABLE Table3 ADD COLUMN Gehaltsgeld")
Oder mit der Methode .Execute des Datenbankobjekts:
CurrentDb.Execute "ALTER TABLE Table3 ADD COLUMN Gehaltsgeld"
Tabelle löschen
Diese VBA-Codezeile verwendet DoCmd.RunSQL, um eine Tabelle zu ändern:
DoCmd.RunSQL ("DROP-Tabellentabelle1")
Oder mit der Methode .Execute des Datenbankobjekts:
CurrentDb.Execute "DROP Table Table1"
SQL-Löschen
Dieser Code verwendet DoCmd.RunSQL, um Datensätze aus einer Tabelle zu löschen:
DoCmd.RunSQL ("DELETE FROM table1 where num=999")
Oder mit der Methode .Execute des Datenbankobjekts:
CurrentDb.Execute "DELETE FROM table1 where num=999"
SQL Einfügen in
Diese Instanz von DoCmd.RunSQL fügt Datensätze in eine Tabelle ein:
DoCmd.RunSQL ("INSERT INTO Table1 ( LastName, dob, num ) VALUES ('L1',#01/01/2001#,78)")
Oder mit der Methode .Execute des Datenbankobjekts:
CurrentDb.Execute "INSERT INTO Table1 ( LastName, dob, num ) VALUES ('L1',#01/01/2001#,78)"
SQL-Tabelle erstellen
Dieser Code erstellt eine Tabelle mit SQL:
CurrentDb.Execute "CREATE TABLE Table1(KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Oder mit der Methode .Execute des Datenbankobjekts:
CurrentDb.Execute "CREATE TABLE Table1(KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Index erstellen
Diese VBA-Codezeile verwendet DoCmd.RunSQL, um eine Tabelle zu ändern:
DoCmd.RunSQL ("CREATE INDEX" & IndexName & " ON " & TableName & "(" & ColumnName & ");")
Oder mit der Methode .Execute des Datenbankobjekts:
CurrentDb.Execute "CREATE INDEX" & IndexName & " ON " & TableName & "(" & ColumnName & ");"
Drop-Index
Diese VBA-Codezeile verwendet DoCmd.RunSQL, um eine Tabelle zu ändern:
DoCmd.RunSQL "DROP INDEX ID ON Table1;"
Oder mit der Methode .Execute des Datenbankobjekts:
CurrentDb.Execute "DROP INDEX ID ON Table1;"
Datenbank erstellen
Dieser Code erstellt eine Datenbank (kein SQL):
Access.DBEngine.CreateDatabase "c:\Temp\testDB1.accdb", DB_LANG_GENERAL
SQL-Abfragen
Abfrage öffnen
Sie können DoCmd.OpenQuery verwenden, um eine gespeicherte Abfrage zu öffnen:
DoCmd.OpenQuery "qry_1", acViewNormal, acEdit
Abfrage ausführen
CurrentDB.Execute führt eine Abfrage aus:
CurrentDb.Execute "qry_1", dbFailOnError
Abfrage nach Excel exportieren
DoCmd.OutputTo exportiert eine Abfrage nach Excel:
DoCmd.OutputTo acOutputQuery, "Query1", acFormatXLS, "c:\temp\ExportedQuery.xls"