Este tutorial contém exemplos de uso de SQL com VBA Access. Como você verá abaixo, para executar consultas SQL no Access com VBA, você pode usar o DoCmd.RunSQL ou CurrentDb.Execute métodos.
SQL Select
Este exemplo usará a instrução SQL Select para abrir um conjunto de registros:
Dim rs As Recordset Set rs = CurrentDb.OpenRecordset ("select * from Table1 where num = 0", dbOpenDynaset)
Tabela de atualização SQL
Esta linha de código VBA usa o método DoCmd.RunSQL para atualizar uma Tabela:
DoCmd.RunSQL ("ATUALIZAR tabela1 SET num = 0 onde num = 999")
Ou você pode usar o método .Execute do objeto de banco de dados:
CurrentDb.Execute "ATUALIZAR tabela1 SET num = 0 onde num = 999"
Tabela de alteração de SQL
Esta linha de código VBA usa DoCmd.RunSQL para alterar uma tabela:
DoCmd.RunSQL ("ALTER TABLE Table3 ADD COLUMN Salário dinheiro")
Ou com o método .Execute do objeto de banco de dados:
CurrentDb.Execute "ALTER TABLE Table3 ADD COLUMN Salário dinheiro"
Mesa de queda
Esta linha de código VBA usa DoCmd.RunSQL para alterar uma tabela:
DoCmd.RunSQL ("Tabela DROP Tabela 1")
Ou com o método .Execute do objeto de banco de dados:
CurrentDb.Execute "Tabela DROP Tabela 1"
Excluir SQL
Este código usa DoCmd.RunSQL para excluir registros de uma tabela:
DoCmd.RunSQL ("EXCLUIR DA tabela1 onde num = 999")
Ou com o método .Execute do objeto de banco de dados:
CurrentDb.Execute "DELETE FROM table1 onde num = 999"
SQL Insert Into
Esta instância de DoCmd.RunSQL insere registros em uma tabela:
DoCmd.RunSQL ("INSERT INTO Table1 (LastName, dob, num) VALUES ('L1', # 01/01/2001 #, 78)")
Ou com o método .Execute do objeto de banco de dados:
CurrentDb.Execute "INSERT INTO Table1 (LastName, dob, num) VALUES ('L1', # 01/01/2001 #, 78)"
SQL Criar Tabela
Este código criará uma tabela usando SQL:
CurrentDb.Execute "CREATE TABLE Table1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Ou com o método .Execute do objeto de banco de dados:
CurrentDb.Execute "CREATE TABLE Table1 (KeyID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Criar Índice
Esta linha de código VBA usa DoCmd.RunSQL para alterar uma tabela:
DoCmd.RunSQL ("CREATE INDEX" & IndexName & "ON" & TableName & "(" & ColumnName & ");")
Ou com o método .Execute do objeto de banco de dados:
CurrentDb.Execute "CREATE INDEX" & IndexName & "ON" & TableName & "(" & ColumnName & ");"
Índice de queda
Esta linha de código VBA usa DoCmd.RunSQL para alterar uma tabela:
DoCmd.RunSQL "DROP INDEX ID ON Table1;"
Ou com o método .Execute do objeto de banco de dados:
CurrentDb.Execute "DROP INDEX ID ON Table1;"
Criar banco de dados
Este código criará um banco de dados (sem SQL):
Access.DBEngine.CreateDatabase "c: \ Temp \ testDB1.accdb", DB_LANG_GENERAL
Consultas SQL
Consulta aberta
Você pode usar DoCmd.OpenQuery para abrir uma consulta salva:
DoCmd.OpenQuery "qry_1", acViewNormal, acEdit
Executar consulta
CurrentDB.Execute executará uma consulta:
CurrentDb.Execute "qry_1", dbFailOnError
Exportar consulta para Excel
DoCmd.OutputTo exportará uma consulta para o Excel:
DoCmd.OutputTo acOutputQuery, "Query1", acFormatXLS, "c: \ temp \ ExportedQuery.xls"