Šajā apmācībā ir SQL izmantošanas piemēri ar VBA Access. Kā redzēsit zemāk, lai palaistu SQL vaicājumus programmā Access ar VBA, varat izmantot vai nu DoCmd.RunSQL vai CurrentDb. Izpildīt metodes.
SQL Atlasīt
Šajā piemērā tiks izmantots SQL Select priekšraksts, lai atvērtu ierakstu kopu:
Dim rs kā ierakstu kopa rs = CurrentDb.OpenRecordset ("izvēlieties * no 1. tabulas, kur num = 0", dbOpenDynaset)
SQL atjaunināšanas tabula
Šī VBA koda rinda izmanto DoCmd.RunSQL metodi, lai atjauninātu tabulu:
DoCmd.RunSQL ("UPDATE table1 SET num = 0 kur num = 999")
Vai arī varat izmantot datu bāzes objekta metodi .Execute:
CurrentDb.Ecute "UPDATE table1 SET num = 0 kur num = 999"
SQL maiņu tabula
Šī VBA koda rinda izmanto DoCmd.RunSQL, lai mainītu tabulu:
DoCmd.RunSQL ("ALTER TABLE Table3 ADD COLUMN Algas nauda")
Vai ar datu bāzes objekta metodi .Execute:
CurrentDb.Execute "ALTER TABLE Table3 ADD COLUMN Algas nauda"
Nometiet tabulu
Šī VBA koda rinda izmanto DoCmd.RunSQL, lai mainītu tabulu:
DoCmd.RunSQL ("DROP 1. tabula")
Vai ar datu bāzes objekta metodi .Execute:
CurrentDb.Execute "DROP Table1 Table1"
SQL Dzēst
Šis kods izmanto DoCmd.RunSQL, lai izdzēstu ierakstus no tabulas:
DoCmd.RunSQL ("DELETE FROM from table1 where number = 999")
Vai ar datu bāzes objekta metodi .Execute:
CurrentDb.Ecute "DELETE FROM tabula1 kur skaitlis = 999"
SQL ievietošana
Šis DoCmd.RunSQL gadījums ievieto ierakstus tabulā:
DoCmd.RunSQL ("INSERT INTO Table1 (LastName, dob, num) VALUES ('L1',#01/01/2001#, 78)")
Vai ar datu bāzes objekta metodi .Execute:
CurrentDb.Execute "INSERT INTO Table1 (LastName, dob, num) VALUES ('L1',#01/01/2001#, 78)"
SQL Izveidot tabulu
Šis kods izveidos tabulu, izmantojot SQL:
CurrentDb.Execute "CREATE TABLE Table1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Vai ar datu bāzes objekta metodi .Execute:
CurrentDb.Execute "CREATE TABLE Table1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Izveidot indeksu
Šī VBA koda rinda izmanto DoCmd.RunSQL, lai mainītu tabulu:
DoCmd.RunSQL ("CREATE INDEX" & IndexName & "ON" & TableName & "(" & ColumnName & ");")
Vai ar datu bāzes objekta metodi .Execute:
CurrentDb.Ecute "CREATE INDEX" & IndexName & "ON" & TableName & "(" & ColumnName & ");"
Kritiena indekss
Šī VBA koda rinda izmanto DoCmd.RunSQL, lai mainītu tabulu:
DoCmd.RunSQL "DROP INDEX ID ON Table1;"
Vai ar datu bāzes objekta metodi .Execute:
CurrentDb.Ecece "DROP INDEX ID ON Table1;"
Izveidot datu bāzi
Šis kods izveidos datu bāzi (bez SQL):
Access.DBEngine.CreateDatabase "c: \ Temp \ testDB1.accdb", DB_LANG_GENERAL
SQL vaicājumi
Atvērt vaicājumu
Varat izmantot DoCmd.OpenQuery, lai atvērtu saglabātu vaicājumu:
DoCmd.OpenQuery "qry_1", acViewNormal, acEdit
Izpildīt vaicājumu
CurrentDB.Execute izpildīs vaicājumu:
CurrentDb.Ecute "qry_1", dbFailOnError
Eksportēt vaicājumu uz Excel
DoCmd.OutputTo eksportēs vaicājumu uz Excel:
DoCmd.OutputTo acOutputQuery, "Query1", acFormatXLS, "c: \ temp \ ExportedQuery.xls"