Acest tutorial conține exemple de utilizare a SQL cu VBA Access. După cum veți vedea mai jos, pentru a rula interogări SQL în Access cu VBA, puteți utiliza fie DoCmd.RunSQL sau CurrentDb.Execute metode.
SQL Select
Acest exemplu va folosi instrucțiunea SQL Select pentru a deschide un set de înregistrări:
Dim rs As Recordset Set rs = CurrentDb.OpenRecordset ("selectați * din Tabelul 1 unde num = 0", dbOpenDynaset)
Tabel de actualizare SQL
Această linie de cod VBA folosește metoda DoCmd.RunSQL pentru a actualiza un tabel:
DoCmd.RunSQL ("UPDATE table1 SET num = 0 unde num = 999")
Sau puteți utiliza metoda .Execute a obiectului bazei de date:
CurrentDb.Execute "UPDATE table1 SET num = 0 unde num = 999"
Tabel SQL Alter
Această linie de cod VBA folosește DoCmd.RunSQL pentru a modifica un tabel:
DoCmd.RunSQL ("ALTER TABLE Tabelul 3 ADĂUGAȚI CULOANA Banii salariului")
Sau cu metoda .Execute a obiectului bazei de date:
CurrentDb.Execute "ALTER TABLE Tabelul 3 ADĂUGAȚI CULOANA Banii salariului"
Drop Table
Această linie de cod VBA folosește DoCmd.RunSQL pentru a modifica un tabel:
DoCmd.RunSQL ("Tabelul DROP Table1")
Sau cu metoda .Execute a obiectului bazei de date:
CurrentDb.Execute "DROP Table Table 1"
Ștergere SQL
Acest cod folosește DoCmd.RunSQL pentru a șterge înregistrările dintr-un tabel:
DoCmd.RunSQL ("ȘTERGERE DIN tabelul 1 unde num = 999")
Sau cu metoda .Execute a obiectului bazei de date:
CurrentDb.Execute "DELETE FROM table1 unde num = 999"
SQL Insert Into
Această instanță a DoCmd.RunSQL introduce înregistrări într-un tabel:
DoCmd.RunSQL ("INSERT INTO Table1 (LastName, dob, num) VALUE ('L1', # 01/01/2001 #, 78)")
Sau cu metoda .Execute a obiectului bazei de date:
CurrentDb.Execute "INSERT INTO Table1 (LastName, dob, num) VALUE ('L1', # 01/01/2001 #, 78)"
SQL Create Table
Acest cod va crea un tabel folosind SQL:
CurrentDb.Execute "CREATE TABLE Table1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Sau cu metoda .Execute a obiectului bazei de date:
CurrentDb.Execute "CREATE TABLE Table1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Creați index
Această linie de cod VBA folosește DoCmd.RunSQL pentru a modifica un tabel:
DoCmd.RunSQL ("CREATE INDEX" & IndexName & "ON" & TableName & "(" & ColumnName & ");")
Sau cu metoda .Execute a obiectului bazei de date:
CurrentDb.Execute "CREATE INDEX" & IndexName & "ON" & TableName & "(" & ColumnName & ");"
Drop Index
Această linie de cod VBA folosește DoCmd.RunSQL pentru a modifica un tabel:
DoCmd.RunSQL "DROP INDEX ID ON Table1;"
Sau cu metoda .Execute a obiectului bazei de date:
CurrentDb.Execute "DROP INDEX ID ON Table1;"
Creați baza de date
Acest cod va crea o bază de date (fără SQL):
Access.DBEngine.CreateDatabase "c: \ Temp \ testDB1.accdb", DB_LANG_GENERAL
Interogări SQL
Deschideți interogarea
Puteți utiliza DoCmd.OpenQuery pentru a deschide o interogare salvată:
DoCmd.OpenQuery "qry_1", acViewNormal, acEdit
Executați interogare
CurrentDB.Execute va executa o interogare:
CurrentDb.Execute "qry_1", dbFailOnError
Exportați interogarea în Excel
DoCmd.OutputTo va exporta o interogare în Excel:
DoCmd.OutputTo acOutputQuery, "Query1", acFormatXLS, "c: \ temp \ ExportedQuery.xls"