Access - Ejecutar SQL de SELECT con DAO en access

 
Vista:

Ejecutar SQL de SELECT con DAO en access

Publicado por CyRuS (127 intervenciones) el 13/12/2006 17:25:28
Tengo esta función, que lo único que hace es leer todos los registros de
una tabla.
Pero yo quiero visualizarlos en pantalla, sin embargo, me da error. Me
dice que "no se puede ejecutar una consulta de selección". ¿ Cómo hago para
poder verlos en pantalla ?

Function hola()
Dim sql As String
Set db = CurrentDb

sql = "SELECT * FROM tabla"
db.Execute sql

End Function
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ejecutar SQL de SELECT con DAO en access

Publicado por Salo (152 intervenciones) el 13/12/2006 20:07:19
No se como estas haciendolo. Supongo que tendras un formulario o un subformulario en donde deseas que te aparezcan los registros de la tabla. Si es asi, debes poner en la propiedad Origen del Registro del formulario el nombre de la tabla y nada mas. Si quieres puedes tambien poner en esta misma propiedad

SELECT * FROM Tabla WHERE Filtro

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar SQL de SELECT con DAO en access

Publicado por Enrique (1299 intervenciones) el 14/12/2006 19:29:33
CyRuS, el mensaje de error te lo dice claramente "No se puede ejecutar una Consulta de Selección" (solo las consultas de Actualización, de Eliminación, de Creación de Tablas, etc pueden ejecutarse) y esa consulta que tu estás creando es de Selección y solo puedes "abrirla". Tienes una forma de hacerlo y es creando provisionalmente por código una Consulta real, abrirla a continuación para que te muestre los registros (filtrados o sin filtrar) y al cerrar el Formulario, eliminarla:

Private Function Hola()
Dim Sql As QueryDef, cSql As String
cSql = "Select * From Tabla"
Set Sql = CurrentDb.CreateQueryDef("NuevaConsulta", cSql)
DoCmd.OpenQuery "NuevaConsulta"
End Function

Private Sub Form_Close()
DoCmd.DeleteObject acQuery, "NuevaConsulta"
End Sub

Si necesitas filtrar los registros cambia el cSql por
cSql = "Select * From Tabla Where CampoFiltro ='" & Me.txtFiltro" & "'"
o con un Filtro fijo:
cSql = "Select * From Tabla Where CampoFiltro = 'gonzalez' "

A ver si con esta te apañas.

Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar