Den här självstudien innehåller exempel på hur du använder SQL med VBA Access. Som du kommer att se nedan kan du antingen använda för att köra SQL -frågor i Access med VBA DoCmd.RunSQL eller CurrentDb.Execute metoder.
Välj SQL
Detta exempel använder SQL Select -satsen för att öppna en postmängd:
Dim rs as Recordset Set rs = CurrentDb.OpenRecordset ("välj * från tabell1 där num = 0", dbOpenDynaset)
Uppdateringstabell för SQL
Denna rad med VBA -kod använder DoCmd.RunSQL -metoden för att uppdatera en tabell:
DoCmd.RunSQL ("UPDATE table1 SET num = 0 where num = 999")
Eller så kan du använda .Execute -metoden för databasobjektet:
CurrentDb.Execute "UPDATE table1 SET num = 0 where num = 999"
SQL Alter Table
Denna rad med VBA -kod använder DoCmd.RunSQL för att ändra en tabell:
DoCmd.RunSQL ("ALTER TABLE Table3 ADD COLUMN Lönepengar")
Eller med .Execute -metoden för databasobjektet:
CurrentDb.Execute "ALTER TABLE Table3 ADD COLUMN Lönepengar"
Släpp bord
Denna rad med VBA -kod använder DoCmd.RunSQL för att ändra en tabell:
DoCmd.RunSQL ("DROP Table Table1")
Eller med .Execute -metoden för databasobjektet:
CurrentDb.Execute "DROP Table Table1"
Ta bort SQL
Denna kod använder DoCmd.RunSQL för att ta bort poster från en tabell:
DoCmd.RunSQL ("DELETE FROM table1 where num = 999")
Eller med .Execute -metoden för databasobjektet:
CurrentDb.Execute "RADERA FRÅN tabell1 där num = 999"
SQL Infoga i
Den här förekomsten av DoCmd.RunSQL infogar poster i en tabell:
DoCmd.RunSQL ("INSERT INTO Table1 (LastName, dob, num) VALUES ('L1',#01/01/2001#, 78)")
Eller med .Execute -metoden för databasobjektet:
CurrentDb.Execute "INSERT INTO Table1 (LastName, dob, num) VALUES ('L1',#01/01/2001#, 78)"
SQL Skapa tabell
Denna kod skapar en tabell med SQL:
CurrentDb.Execute "SKAPA TABELL Tabell1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Eller med .Execute -metoden för databasobjektet:
CurrentDb.Execute "SKAPA TABELL Tabell1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Skapa index
Denna rad med VBA -kod använder DoCmd.RunSQL för att ändra en tabell:
DoCmd.RunSQL ("CREATE INDEX" & IndexName & "ON" & TableName & "(" & ColumnName & ");")
Eller med .Execute -metoden för databasobjektet:
CurrentDb.Execute "CREATE INDEX" & IndexName & "ON" & TableName & "(" & ColumnName & ");"
Släpp index
Denna rad med VBA -kod använder DoCmd.RunSQL för att ändra en tabell:
DoCmd.RunSQL "DROP INDEX ID ON Table1;"
Eller med .Execute -metoden för databasobjektet:
CurrentDb.Execute "DROP INDEX ID ON Table1;"
Skapa databas
Denna kod skapar en databas (ingen SQL):
Access.DBEngine.CreateDatabase "c: \ Temp \ testDB1.accdb", DB_LANG_GENERAL
SQL -frågor
Öppna fråga
Du kan använda DoCmd.OpenQuery för att öppna en sparad fråga:
DoCmd.OpenQuery "qry_1", acViewNormal, acEdit
Utför fråga
CurrentDB.Execute kommer att köra en fråga:
CurrentDb.Execute "qry_1", dbFailOnError
Exportera fråga till Excel
DoCmd.OutputTo exporterar en fråga till Excel:
DoCmd.OutputTo acOutputQuery, "Query1", acFormatXLS, "c: \ temp \ ExportedQuery.xls"