Ten samouczek zawiera przykłady używania SQL z VBA Access. Jak zobaczysz poniżej, do uruchamiania zapytań SQL w programie Access z użyciem języka VBA możesz użyć: DoCmd.RunSQL lub CurrentDb.Execute metody.
Wybór SQL
Ten przykład użyje instrukcji SQL Select do otwarcia zestawu rekordów:
Dim rs As Recordset Set rs = CurrentDb.OpenRecordset("wybierz * z Tabeli1, gdzie num=0", dbOpenDynaset)
Tabela aktualizacji SQL
Ten wiersz kodu VBA używa metody DoCmd.RunSQL do aktualizacji tabeli:
DoCmd.RunSQL ("AKTUALIZUJ tabela1 USTAW numer =0 gdzie numer=999")
Lub możesz użyć metody .Execute obiektu bazy danych:
CurrentDb.Execute "UPDATE table1 SET num =0 gdzie num=999"
Zmień tabelę SQL
Ten wiersz kodu VBA używa DoCmd.RunSQL do zmiany tabeli:
DoCmd.RunSQL ("ALTER TABLE Table3 ADD COLUMN Salary money")
Lub za pomocą metody .Execute obiektu bazy danych:
CurrentDb.Execute "ALTER TABLE Table3 ADD COLUMN Wynagrodzenie pieniędzy"
Upuść tabelę
Ten wiersz kodu VBA używa DoCmd.RunSQL do zmiany tabeli:
DoCmd.RunSQL ("Tabela DROP Table1")
Lub za pomocą metody .Execute obiektu bazy danych:
CurrentDb.Execute "DROP Table1"
Usuń SQL
Ten kod używa DoCmd.RunSQL do usuwania rekordów z tabeli:
DoCmd.RunSQL ("USUŃ Z tabeli1 gdzie num=999")
Lub za pomocą metody .Execute obiektu bazy danych:
CurrentDb.Execute "DELETE FROM table1 gdzie num=999"
SQL Wstaw do
To wystąpienie DoCmd.RunSQL wstawia rekordy do tabeli:
DoCmd.RunSQL ("INSERT INTO Table1 ( LastName, dob, num ) VALUES ('L1',#01/01/2001#,78)")
Lub za pomocą metody .Execute obiektu bazy danych:
CurrentDb.Execute "INSERT INTO Table1 ( LastName, dob, num ) VALUES ('L1',#01/01/2001#,78)"
Utwórz tabelę SQL
Ten kod utworzy tabelę za pomocą SQL:
CurrentDb.Execute "CREATE TABLE Table1(KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT Field2 TEXT)"
Lub za pomocą metody .Execute obiektu bazy danych:
CurrentDb.Execute "CREATE TABLE Table1(KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT Field2 TEXT)"
Utwórz indeks
Ten wiersz kodu VBA używa DoCmd.RunSQL do zmiany tabeli:
DoCmd.RunSQL ("CREATE INDEX " & IndexName & " ON " & TableName & "(" & ColumnName & ");")
Lub za pomocą metody .Execute obiektu bazy danych:
CurrentDb.Execute "CREATE INDEX " & IndexName & " ON " & TableName & "(" & ColumnName & ");"
Indeks spadku
Ten wiersz kodu VBA używa DoCmd.RunSQL do zmiany tabeli:
DoCmd.RunSQL "DROP INDEX ID ON Table1;"
Lub za pomocą metody .Execute obiektu bazy danych:
CurrentDb.Execute "DROP INDEX ID ON Table1;"
Utwórz bazę danych
Ten kod utworzy bazę danych (bez SQL):
Access.DBEngine.CreateDatabase "c:\Temp\testDB1.accdb", DB_LANG_GENERAL
Zapytania SQL
Otwórz zapytanie
Możesz użyć DoCmd.OpenQuery, aby otworzyć zapisane zapytanie:
DoCmd.OpenQuery „qry_1”, acViewNormal, acEdit
Wykonaj zapytanie
CurrentDB.Execute wykona zapytanie:
CurrentDb.Execute "qry_1", dbFailOnError
Eksportuj zapytanie do Excela
DoCmd.OutputTo wyeksportuje zapytanie do Excela:
DoCmd.OutputTo acOutputQuery, "Query1", acFormatXLS, "c:\temp\ExportedQuery.xls"