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.

1 respuesta

Respuesta
1
Si eso es correcto
El formato de las fechas es importante en access debes usar mm/dd/yyyy
pon las fecha así
 RSQuery.Parameters(1) = format(fecha,"mm/dd/yyyy")
tambien puedes usar
Dim r as recordset
set r = currentdb.openrecordset("Select * from Tabla") ' por la consulta aca con los parametros incluidos como texto
¡        t=t+r!cantidad
¡        r.movenext
¡     next
end if

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas