Ez az oktatóanyag példákat tartalmaz az SQL és a VBA Access használatára. Amint alább látni fogja, SQL -lekérdezések futtatásához az Access with VBA programban használhatja a DoCmd.RunSQL vagy CurrentDb. Végrehajtás mód.
SQL Select
Ez a példa az SQL Select utasítást használja a rekordkészlet megnyitásához:
Dim rs rekordhalmazként rs = CurrentDb.OpenRecordset ("válasszon * az 1. táblázatból, ahol a szám = 0", dbOpenDynaset)
SQL frissítési táblázat
A VBA kód ezen sora a DoCmd.RunSQL metódust használja a táblázat frissítéséhez:
DoCmd.RunSQL ("UPDATE table1 SET szám = 0 ahol szám = 999")
Vagy használhatja az adatbázis -objektum .Execute metódusát:
CurrentDb.Eceute "UPDATE table1 SET szám = 0 ahol szám = 999"
SQL Alter táblázat
A VBA -kód ezen sora a DoCmd.RunSQL -t használja a táblázat módosításához:
DoCmd.RunSQL ("ALTER TABLE 3. Table ADD COLUMN Fizetési pénz")
Vagy az adatbázis -objektum .Execute módszerével:
CurrentDb.Eceute "ALTER TABLE 3. Table ADD COLUMN Fizetési pénz"
Asztal leejtése
A VBA -kód ezen sora a DoCmd.RunSQL -t használja a táblázat módosításához:
DoCmd.RunSQL ("DROP 1. táblázat")
Vagy az adatbázis -objektum .Execute módszerével:
CurrentDb.Exute "DROP Table Table Table1"
SQL Törlés
Ez a kód a DoCmd.RunSQL -t használja a rekordok törléséhez a táblázatból:
DoCmd.RunSQL ("DELETE FROM from table1 where number = 999")
Vagy az adatbázis -objektum .Execute módszerével:
CurrentDb.Végezze el a "DELETE FROM from table1 where number = 999"
SQL Insert Into
A DoCmd.RunSQL ezen példánya rekordokat szúr be a táblázatba:
DoCmd.RunSQL ("INSERT INTO Table1 (LastName, dob, num) VALUES ('L1',#01/01/2001#, 78)")
Vagy az adatbázis -objektum .Execute módszerével:
CurrentDb.Exuteute "INSERT INTO Table1 (LastName, dob, num) VALUES ('L1',#01/01/2001#, 78)"
SQL táblázat létrehozása
Ez a kód létrehoz egy táblázatot SQL használatával:
CurrentDb.Eceute "CREATE TABLE Table 1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Vagy az adatbázis -objektum .Execute módszerével:
CurrentDb.Eceute "CREATE TABLE Table 1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Index létrehozása
A VBA -kód ezen sora a DoCmd.RunSQL -t használja a táblázat módosításához:
DoCmd.RunSQL ("CREATE INDEX" & IndexName & "ON" & TableName & "(" & ColumnName & ");")
Vagy az adatbázis -objektum .Execute módszerével:
CurrentDb.Végezze el a "CREATE INDEX" & IndexName & "ON" & TableName & "(" & ColumnName & ");"
Csepp index
A VBA -kód ezen sora a DoCmd.RunSQL -t használja a táblázat módosításához:
DoCmd.RunSQL "DROP INDEX ID ON 1. táblázat;"
Vagy az adatbázis -objektum .Execute módszerével:
CurrentDb.Execute "DROP INDEX ID ON Table1;"
Adatbázis létrehozása
Ez a kód létrehoz egy adatbázist (nincs SQL):
Access.DBEngine.CreateDatabase "c: \ Temp \ testDB1.accdb", DB_LANG_GENERAL
SQL lekérdezések
Nyissa meg a Lekérdezést
A DoCmd.OpenQuery használatával megnyithat egy mentett lekérdezést:
DoCmd.OpenQuery "qry_1", acViewNormal, acEdit
Lekérdezés végrehajtása
A CurrentDB.Execute lekérdezést hajt végre:
CurrentDb.Exuteute "qry_1", dbFailOnError
Lekérdezés exportálása Excelbe
A DoCmd.OutputTo lekérdezést exportál az Excelbe:
DoCmd.OutputTo acOutputQuery, "Query1", acFormatXLS, "c: \ temp \ ExportedQuery.xls"