Crear Recordset con consulta mediante Querydef
Tengo una BD Access 2003 en la que tengo un formulario en el que se introducen 2 fechas y el nombre de un comprador. Lo que quiero es abrir un recordset que utilice una consulta que tengo definida pero pasándole 3 datos que se cargarán desde un formulario.
Entiendo que debe recibir como parámetros las dos fechas y el nombre del vendedor, pero no sé si le estoy pasando los datos correctamente.
Te pego el código tal y como lo tengo para que puedas echarle un vistazo. Tal y como está no produce ningún error, pero tampoco resultados.
Fecha y fecha2 son dos variables tipo Date. Nomcomprador es una variable tipo string. ¿Están bien puestas ahí?. Gracias de antemano.
Dim DBVenta As Database
Dim RSVenta As Recordset
Dim query As QueryDef
Dim fecha As Date
Dim fecha2 As Date
Set DBVenta = CurrentDb
Set RSQuery = DBVenta.QueryDefs("BuscaComp")
RSQuery.Parameters(0) = Ncomprador
RSQuery.Parameters(1) = fecha
RSQuery.Parameters(2) = fecha2
Set RSVenta = RSQuery.OpenRecordset(dbOpenDynaset)
Para comprobar si la consulta contiene resultados hago lo siguiente:
With RSVenta
If .EOF And .BOF Then
MSG = MsgBox("RSVENTA.EOF = " & .EOF, vbOKOnly)
MSG = MsgBox("RSVENTA.BOF = " & .BOF, vbOKOnly)
End If
End With
Sin embargo el resultado es siempre el mismo, RSVENTA.EOF y RSVENTA.BOF = TRUE, independientemente que los parámetros pasados a la consulta deban devolver datos o no. Entiendo que si el recordset tiene tiene el EOF y el BOF a true es que la consulta no ha devuelto resultados, verdad?.
Te agradecería me echases una mano, porque estoy atascado y no sé muy bien qué estoy haciendo mal.
Entiendo que debe recibir como parámetros las dos fechas y el nombre del vendedor, pero no sé si le estoy pasando los datos correctamente.
Te pego el código tal y como lo tengo para que puedas echarle un vistazo. Tal y como está no produce ningún error, pero tampoco resultados.
Fecha y fecha2 son dos variables tipo Date. Nomcomprador es una variable tipo string. ¿Están bien puestas ahí?. Gracias de antemano.
Dim DBVenta As Database
Dim RSVenta As Recordset
Dim query As QueryDef
Dim fecha As Date
Dim fecha2 As Date
Set DBVenta = CurrentDb
Set RSQuery = DBVenta.QueryDefs("BuscaComp")
RSQuery.Parameters(0) = Ncomprador
RSQuery.Parameters(1) = fecha
RSQuery.Parameters(2) = fecha2
Set RSVenta = RSQuery.OpenRecordset(dbOpenDynaset)
Para comprobar si la consulta contiene resultados hago lo siguiente:
With RSVenta
If .EOF And .BOF Then
MSG = MsgBox("RSVENTA.EOF = " & .EOF, vbOKOnly)
MSG = MsgBox("RSVENTA.BOF = " & .BOF, vbOKOnly)
End If
End With
Sin embargo el resultado es siempre el mismo, RSVENTA.EOF y RSVENTA.BOF = TRUE, independientemente que los parámetros pasados a la consulta deban devolver datos o no. Entiendo que si el recordset tiene tiene el EOF y el BOF a true es que la consulta no ha devuelto resultados, verdad?.
Te agradecería me echases una mano, porque estoy atascado y no sé muy bien qué estoy haciendo mal.
1 respuesta
Respuesta de luis45ccs
1