Deze zelfstudie bevat voorbeelden van het gebruik van SQL met VBA-toegang. Zoals u hieronder zult zien, kunt u voor het uitvoeren van SQL-query's in Access met VBA ofwel de DoCmd.RunSQL of CurrentDb.Execute methoden.
SQL-selectie
In dit voorbeeld wordt de SQL Select-instructie gebruikt om een recordset te openen:
Dim rs As Recordset Set rs = CurrentDb.OpenRecordset("select * from Table1 where num=0", dbOpenDynaset)
SQL-updatetabel
Deze regel VBA-code gebruikt de DoCmd.RunSQL-methode om een tabel bij te werken:
DoCmd.RunSQL ("UPDATE table1 SET num =0 waar num=999")
Of u kunt de .Execute-methode van het databaseobject gebruiken:
CurrentDb.Execute "UPDATE table1 SET num =0 waar num=999"
SQL-wijzigingstabel
Deze regel VBA-code gebruikt de DoCmd.RunSQL om een tabel te wijzigen:
DoCmd.RunSQL ("ALTER TABLE Table3 TOEVOEGEN KOLOM Salarisgeld")
Of met de .Execute methode van het database object:
CurrentDb.Execute "WIJZIG TABEL Tabel3 TOEVOEGEN KOLOM Salarisgeld"
Tafel laten vallen
Deze regel VBA-code gebruikt de DoCmd.RunSQL om een tabel te wijzigen:
DoCmd.RunSQL ("DROP Tabel Tabel1")
Of met de .Execute methode van het database object:
CurrentDb.Execute "DROP Table Table1"
SQL verwijderen
Deze code gebruikt de DoCmd.RunSQL om records uit een tabel te verwijderen:
DoCmd.RunSQL ("VERWIJDEREN UIT tabel1 waarbij num=999")
Of met de .Execute methode van het database object:
CurrentDb.Execute "VERWIJDEREN UIT tabel1 waarbij num=999"
SQL invoegen in
Dit exemplaar van DoCmd.RunSQL voegt records in een tabel in:
DoCmd.RunSQL ("INSERT INTO Table1 ( LastName, dob, num ) VALUES ('L1',#01/01/2001#,78)")
Of met de .Execute methode van het database object:
CurrentDb.Execute "INSERT INTO Table1 ( LastName, dob, num ) VALUES ('L1',#01/01/2001#,78)"
SQL-tabel maken
Deze code maakt een tabel met SQL:
CurrentDb.Execute "CREATE TABLE Table1(KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Of met de .Execute methode van het database object:
CurrentDb.Execute "CREATE TABLE Table1(KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Index maken
Deze regel VBA-code gebruikt de DoCmd.RunSQL om een tabel te wijzigen:
DoCmd.RunSQL ("CREATE INDEX " & IndexName & " ON " & TableName & "(" & ColumnName & ");")
Of met de .Execute methode van het database object:
CurrentDb.Execute "CREATE INDEX" & IndexName & "ON" & TableName & "(" & ColumnName & ");"
Index laten vallen
Deze regel VBA-code gebruikt de DoCmd.RunSQL om een tabel te wijzigen:
DoCmd.RunSQL "DROP INDEX ID OP Tabel1;"
Of met de .Execute methode van het database object:
CurrentDb.Execute "DROP INDEX ID ON Table1;"
Database maken
Met deze code wordt een database gemaakt (geen SQL):
Access.DBEngine.CreateDatabase "c:\Temp\testDB1.accdb", DB_LANG_GENERAL
SQL-query's
Zoekopdracht openen
U kunt DoCmd.OpenQuery gebruiken om een opgeslagen query te openen:
DoCmd.OpenQuery "qry_1", acViewNormal, acEdit
Query uitvoeren
CurrentDB.Execute zal een query uitvoeren:
CurrentDb.Execute "qry_1", dbFailOnError
Query exporteren naar Excel
DoCmd.OutputTo exporteert een query naar Excel:
DoCmd.OutputTo acOutputQuery, "Query1", acFormatXLS, "c:\temp\ExportedQuery.xls"