Este tutorial contiene ejemplos del uso de SQL con VBA Access. Como verá a continuación, para ejecutar consultas SQL en Access con VBA puede usar el DoCmd.RunSQL o CurrentDb.Execute métodos.
Selección de SQL
Este ejemplo utilizará la instrucción SQL Select para abrir un juego de registros:
Dim rs As Recordset Set rs = CurrentDb.OpenRecordset ("seleccionar * de Table1 donde num = 0", dbOpenDynaset)
Tabla de actualización de SQL
Esta línea de código VBA utiliza el método DoCmd.RunSQL para actualizar una tabla:
DoCmd.RunSQL ("ACTUALIZAR tabla1 SET num = 0 donde num = 999")
O puede utilizar el método .Execute del objeto de la base de datos:
CurrentDb.Execute "ACTUALIZAR tabla1 SET num = 0 donde num = 999"
Tabla de modificación de SQL
Esta línea de código VBA usa DoCmd.RunSQL para alterar una tabla:
DoCmd.RunSQL ("ALTER TABLE Table3 ADD COLUMN Salario")
O con el método .Execute del objeto de la base de datos:
CurrentDb.Execute "ALTER TABLE Table3 ADD COLUMN Salario"
Mesa plegable
Esta línea de código VBA usa DoCmd.RunSQL para alterar una tabla:
DoCmd.RunSQL ("DROP Table Table1")
O con el método .Execute del objeto de la base de datos:
CurrentDb.Execute "DROP Table Table1"
Eliminar SQL
Este código usa DoCmd.RunSQL para eliminar registros de una tabla:
DoCmd.RunSQL ("ELIMINAR DE la tabla1 donde num = 999")
O con el método .Execute del objeto de la base de datos:
CurrentDb.Execute "DELETE FROM table1 donde num = 999"
Insertar SQL en
Esta instancia de DoCmd.RunSQL inserta registros en una tabla:
DoCmd.RunSQL ("INSERT INTO Table1 (LastName, dob, num) VALUES ('L1', # 01/01/2001 #, 78)")
O con el método .Execute del objeto de la base de datos:
CurrentDb.Execute "INSERT INTO Table1 (LastName, dob, num) VALUES ('L1', # 01/01/2001 #, 78)"
Tabla de creación de SQL
Este código creará una tabla usando SQL:
CurrentDb.Execute "CREATE TABLE Table1 (KeyID COUNTER RESTRRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
O con el método .Execute del objeto de la base de datos:
CurrentDb.Execute "CREATE TABLE Table1 (KeyID COUNTER RESTRRAINT PrimaryKey PRIMARY KEY, Field1 TEXT, Field2 TEXT)"
Crear índice
Esta línea de código VBA usa DoCmd.RunSQL para alterar una tabla:
DoCmd.RunSQL ("CREAR ÍNDICE" & IndexName & "ON" & TableName & "(" & ColumnName & ");")
O con el método .Execute del objeto de la base de datos:
CurrentDb.Execute "CREAR ÍNDICE" & IndexName & "ON" & TableName & "(" & ColumnName & ");"
Índice de caída
Esta línea de código VBA usa DoCmd.RunSQL para alterar una tabla:
DoCmd.RunSQL "DROP INDEX ID ON Table1;"
O con el método .Execute del objeto de la base de datos:
CurrentDb.Execute "DROP INDEX ID ON Table1;"
Crear base de datos
Este código creará una base de datos (no SQL):
Access.DBEngine.CreateDatabase "c: \ Temp \ testDB1.accdb", DB_LANG_GENERAL
Consultas SQL
Consulta abierta
Puede utilizar DoCmd.OpenQuery para abrir una consulta guardada:
DoCmd.OpenQuery "qry_1", acViewNormal, acEdit
Ejecutar la solicitud
CurrentDB.Execute ejecutará una consulta:
CurrentDb.Execute "qry_1", dbFailOnError
Exportar consulta a Excel
DoCmd.OutputTo exportará una consulta a Excel:
DoCmd.OutputTo acOutputQuery, "Query1", acFormatXLS, "c: \ temp \ ExportedQuery.xls"