Access - Error en CurrentDb.Execute

 
Vista:

Error en CurrentDb.Execute

Publicado por bea (4 intervenciones) el 13/09/2004 17:39:39
Buenas tardes a todos..
Quiero lanzar desde un formulario consultas segun unos cuantos parametros.
Por ejemplo si el usuario es x y la edad > z , etc.. lanzarla y luego cambiando otros parametros tambien lanzar la consulta. Y de ahi generar un informe para mostrar los datos o segun los datos seleccionados ya lanzo un informe u otro para mostrar los datos.
He estado probando con RunSQL, y CurrentDb.Execute con una sql normal de seleccion y da error, ya que dice que no puede ser una consulta de seleccion. Y en la ayuda me ha parecido ver
Si puede ser os agradeceria una pequeña ayuda porque no hay forma de aclararme..

Si alguien tiene otra idea de hacerlo o no se puede hacer asi.., cambio la forma de hacerlo..

Muchas gracias por adelantado
Saludos..
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
Imágen de perfil de Alejandro

Error en CurrentDb.Execute

Publicado por Alejandro (4142 intervenciones) el 10/05/2023 18:37:31
Buenas tardes.

Si estás buscando ejecutar consultas en Access desde un formulario con parámetros variables y luego generar un informe basado en los resultados, puedes utilizar la siguiente estructura de código VBA:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Dim strSQL As String
Dim rs As DAO.Recordset
Dim rpt As Report
 
' Construir la cadena SQL con los parámetros del formulario
strSQL = "SELECT * FROM NombreTabla WHERE Usuario = '" & Me.txtUsuario & "' AND Edad > " & Me.txtEdad & ";"
 
' Ejecutar la consulta
Set rs = CurrentDb.OpenRecordset(strSQL)
 
' Verificar si se encontraron registros
If Not rs.EOF Then
    ' Crear el informe basado en los resultados de la consulta
    Set rpt = New NombreInforme
    rpt.RecordSource = strSQL
    DoCmd.OpenReport rpt.Name, acViewPreview
Else
    ' No se encontraron registros, mostrar un mensaje o realizar otra acción
    MsgBox "No se encontraron resultados."
End If
 
' Cerrar el recordset
rs.Close
Set rs = Nothing

En este código, debes reemplazar "NombreTabla" con el nombre de la tabla que contiene los datos que deseas consultar, "Usuario" y "Edad" con los nombres de los campos correspondientes, y "NombreInforme" con el nombre del informe que deseas generar.

Puedes colocar este código en el evento "Click" de un botón en tu formulario. Asegúrate de tener referenciada la biblioteca de objetos de datos de Microsoft DAO (en VBA, ve a "Herramientas" > "Referencias" y marca la casilla de "Microsoft DAO x.x Object Library").

Este código construye una cadena SQL dinámica basada en los valores de los controles del formulario, ejecuta la consulta utilizando `CurrentDb.OpenRecordset`, y luego verifica si se encontraron registros. Si se encuentran registros, se crea y abre un informe basado en la consulta. Si no se encuentran registros, se muestra un mensaje.

Espero que esta solución sea útil para tu caso. ¡Buena suerte con tu proyecto!
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