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

Preguntas similare

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
Respuesta Responder a este mensaje
#2 Pepito I
27/11/2003 - 05:14 | Informe spam
Muchas gracias Fernando y mis saludos
No había tenido oportunidad de responder antes, gracias y
luego que pruebe te daré detalles si es exactamente lo que
buscaba.Creo que sí.
Slds
Pepito I

"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





.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida