Denne opplæringen inneholder eksempler på bruk av SQL med VBA Access. Som du vil se nedenfor, for å kjøre SQL -spørringer i Access med VBA, kan du bruke enten DoCmd.RunSQL eller CurrentDb.Execute metoder.
Velg SQL
Dette eksemplet vil bruke SQL Select -setningen til å åpne et rekordsett:
Dim rs As Recordset Set rs = CurrentDb.OpenRecordset ("velg * fra tabell1 hvor num = 0", dbOpenDynaset)
Oppdateringstabell for SQL
Denne linjen med VBA -kode bruker DoCmd.RunSQL -metoden for å oppdatere en tabell:
DoCmd.RunSQL ("UPDATE table1 SET num = 0 hvor num = 999")
Eller du kan bruke .Execute -metoden for databaseobjektet:
CurrentDb.Execute "UPDATE table1 SET num = 0 hvor num = 999"
SQL Alter Table
Denne linjen med VBA -kode bruker DoCmd.RunSQL for å endre en tabell:
DoCmd.RunSQL ("ALTER TABLE Table3 ADD COLUMN Lønnpenger")
Eller med .Execute -metoden for databaseobjektet:
CurrentDb.Execute "ALTER TABLE Table3 ADD COLUMN Lønnpenger"
Slipp bord
Denne linjen med VBA -kode bruker DoCmd.RunSQL for å endre en tabell:
DoCmd.RunSQL ("DROP Table Table1")
Eller med .Execute -metoden for databaseobjektet:
CurrentDb.Execute "DROP Table Table1"
Slett SQL
Denne koden bruker DoCmd.RunSQL til å slette poster fra en tabell:
DoCmd.RunSQL ("SLETT FRA tabell1 hvor num = 999")
Eller med .Execute -metoden for databaseobjektet:
CurrentDb.Execute "SLETT FRA tabell1 hvor num = 999"
SQL Sett inn i
Denne forekomsten av DoCmd.RunSQL setter inn poster i en tabell:
DoCmd.RunSQL ("INSERT INTO Table1 (LastName, dob, num) VALUES ('L1',#01/01/2001#, 78)")
Eller med .Execute -metoden for databaseobjektet:
CurrentDb.Execute "INSERT INTO Table1 (LastName, dob, num) VERDI ('L1',#01/01/2001#, 78)"
SQL Lag tabell
Denne koden vil opprette en tabell ved hjelp av SQL:
CurrentDb.Execute "CREATE TABLE Table1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Eller med .Execute -metoden for databaseobjektet:
CurrentDb.Execute "CREATE TABLE Table1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Lag indeks
Denne linjen med VBA -kode bruker DoCmd.RunSQL for å endre en tabell:
DoCmd.RunSQL ("CREATE INDEX" & IndexName & "ON" & TableName & "(" & ColumnName & ");")
Eller med .Execute -metoden for databaseobjektet:
CurrentDb.Execute "CREATE INDEX" & IndexName & "ON" & TableName & "(" & ColumnName & ");"
Slipp indeks
Denne linjen med VBA -kode bruker DoCmd.RunSQL for å endre en tabell:
DoCmd.RunSQL "DROP INDEX ID ON Table1;"
Eller med .Execute -metoden for databaseobjektet:
CurrentDb.Execute "DROP INDEX ID ON Table1;"
Lag Database
Denne koden vil opprette en database (ingen SQL):
Access.DBEngine.CreateDatabase "c: \ Temp \ testDB1.accdb", DB_LANG_GENERAL
SQL -forespørsler
Åpen forespørsel
Du kan bruke DoCmd.OpenQuery til å åpne en lagret spørring:
DoCmd.OpenQuery "qry_1", acViewNormal, acEdit
Utfør forespørsel
CurrentDB.Execute vil utføre en spørring:
CurrentDb.Execute "qry_1", dbFailOnError
Eksporter forespørsel til Excel
DoCmd.OutputTo vil eksportere en spørring til Excel:
DoCmd.OutputTo acOutputQuery, "Query1", acFormatXLS, "c: \ temp \ ExportedQuery.xls"