Access - Ejecutar consulta con parametros con OpenRecordset

   
Vista:

Ejecutar consulta con parametros con OpenRecordset

Publicado por PAM (13 intervenciones) el 12/03/2008 10:35:03
Hola a tod@s,
Mi problema es el siguiente:
Tengo una consulta que necesita de parámetros de un formulario y la ejecuto desde un botón del formulario mediante Visual Basic desde el evento presionar el botón pero cuando se ejecuta me aparece una ventana diciendo "Pocos parámetros. Se esperaba 1." y no ejecuta la consulta.

La consulta MiConsulta tiene el siguiente aspecto:

SELECT * FROM Tabla WHERE CampoTabla<=Formularios!MiFormulario!CampoFormulario

Y el código del evento:

Private Sub Miboton_Click()

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim myCount As Integer
Dim cont As Long
Dim sql As String
Dim p_CampoFormulario As Date

p_CampoFormulario = Forms!MiFormulario!CampoFormulario
Set db = CurrentDb
sql = "SELECT * FROM MiConsulta;"
Set rs = db.OpenRecordset(sql)
myCount = rs.RecordCount
If myCount > 0 Then
rs.MoveFirst
Do Until rs.EOF ' Mientras queden registros.
......
rs.MoveNext
Loop
rs.Requery
End If
rs.Close
db.Close
Set db = Nothing
End Sub

Espero que alguien sepa cual es el problema y me pueda ayudar.
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

RE:Ejecutar consulta con parametros con OpenRecord

Publicado por Miguel Angel (9 intervenciones) el 12/03/2008 11:40:27
No sé, ahi tienes algo raro, si miconsulta tiene "SELECT * FROM Tabla WHERE CampoTabla<=Formularios!MiFormulario!campoFormulario".
sql te quedaria algo así "Select * From SELECT * FROM Tabla WHERE CampoTabla<=Formularios!MiFormulario!campoFormulario"
eso no es válido, tienes que cortar la cadena para que coga el valor, yo pondría
directamente:
sql = "Select * from tabla where campoTabla<= " & Formularios!MiFormulario!campoFormulario & "; " y ojo si campoformulario es texto o numero
esta opcion es para numero si es texto debe llevar comilla simples entre comillas dobles.

prueba a ver.
Suerte.
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 consulta con parametros con OpenRecord

Publicado por PAM (13 intervenciones) el 12/03/2008 15:34:39
Si pongo directamente la sql en el código me aparece el siguiente mensaje:
"No coinciden los tipos de datos en la expresión de criterios"
cuando si lo ejecuto desde la consulta directamente teniendo el parámetro en la form se ejecuta perfectamente.
Es que es una consulta bastante compleja que lleva iff(,,) y cálculos.
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 consulta con parametros con OpenRecord

Publicado por mi menda (1111 intervenciones) el 12/03/2008 21:32:28
Hola Pam:
En el diseño de la consulta mete el criterio dentro de la función eval()

eval("Forms!MiFormulario!CampoFormulario ")

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 consulta con parametros con OpenRecord

Publicado por PAM (13 intervenciones) el 13/03/2008 09:49:57
SI SEÑ@@@@@@@@@R/A!!!!

Muchiiiiiiiisimas gracias mi menda
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 consulta con parametros con OpenRecord

Publicado por FERNANDO (1 intervención) el 21/04/2008 21:33:42
Intenta quitar le el ; al final del select, de tal manera que qede
"SELECT * FROM MiConsulta;" pasado ha :
"SELECT * FROM MiConsulta"
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