Consultas desde VBA

23/11/2003 - 04:21 por Pepito I | Informe spam
Hola a todos!!!
1.-Necesito desde VBA ejecutar una consulta que ya existe
en una base de datos de access (y el resultado de la
consulta quede en la hoja activa).
Alguien me pudiera poner un ejemplo sencillo
Tengo office 2000 con W98.
2.-¿Puedo crear una consulta con SQL desde VBA?.Un ejemplo
Plss.

Todo esto porque para mis "amplios" conocimientos de
access se me hace mucho más fácil dominar la impresión en
Excel.
Saludos Pepito I
 

Leer las respuestas

#1 Fernando Arroyo
23/11/2003 - 10:25 | Informe spam
"Pepito I" escribió en el mensaje news:001a01c3b170$ef33f8c0$
Hola a todos!!!
1.-Necesito desde VBA ejecutar una consulta que ya existe
en una base de datos de access (y el resultado de la
consulta quede en la hoja activa).
Alguien me pudiera poner un ejemplo sencillo
Tengo office 2000 con W98.




Haz Datos->Obtener datos externos->Nueva consulta de base de datos, selecciona "MS Access Database*" en la pestaña "Bases de datos" y al seleccionar la base de datos en que se encuentre la consulta te aparecerán tanto sus tablas como las consultas.


2.-¿Puedo crear una consulta con SQL desde VBA?.Un ejemplo
Plss.




Si con "consulta con SQL" te estás refiriendo a la consulta de Access, sí se puede modificar usando VBA. Ejemplo:

Sub ModificarConsultaAccess()
Dim db As DAO.Database, qd As DAO.QueryDef

Set db = OpenDatabase("C:\bd1.mdb") 'Ruta y nombre de la base de datos

Set qd = db.QueryDefs("Consulta1") 'Nombre de la consulta
qd.Sql = "SELECT Tabla1.Campo2 FROM Tabla1;" 'Instrucción SQL de la consulta

db.Close
Set qd = Nothing
Set db = Nothing
End Sub


Dado que el código usa DAO, es necesario establecer una referencia a su librería desde Herramientas->Referencias, estando en el editor de VBA. La librería se llama "Microsoft DAO X.x Object Library", donde X.x representa la versión (normalmente, la 3.6)

De todas formas, si lo que necesitas es traer a Excel uno o varios registros de una tabla de Access usando como criterio alguna celda, es más sencillo acceder directamente a la tabla según lo que te contesté a la pregunta anterior y luego, usando VBA, modificar la instrucción SQL de la consulta de Excel cada vez que se modifica la celda (o celdas) que deben actuar de filtro.
Un saludo.


Fernando Arroyo
MS MVP - Excel


Todo esto porque para mis "amplios" conocimientos de
access se me hace mucho más fácil dominar la impresión en
Excel.
Saludos Pepito I

Preguntas similares