Generar una fecha a partir de otra

Hola experto. Espero me puedas ayudar.
Tengo una bd en MS Access 2007. La bd tiene 3 tablas: empeño, pagos y prenda. La tabla de empeño tiene un campo tipo fecha que se llama "fecha de empeño". Necesito que cuando se capture la fecha de empeño, se llene el campo "fecha de vencimiento" que pertenece a la tabla pagos. La fecha de vencimiento será de 30 días si el "tipo" (campo de la tabla prenda) es "metal" o de 90 días en otro caso.
Hasta el momento, tengo el sig. Código:
Option Compare Database
Private Sub fecha_de_empeño_AfterUpdate()
Dim dbs As Database
Dim rstEMPEÑO As DAO.Recordset
Dim rstPAGOS As DAO.Recordset
Dim rstPRENDA As DAO.Recordset
Dim fechaINICIAL
Dim tipo
Dim fechaVencimiento
Set dbs = CurrentDb
Set rstEMPEÑO = dbs.OpenRecordset("select * from EMPEÑO")
rstEMPEÑO.MoveLast
Set rstPAGOS = dbs.OpenRecordset("select * from PAGOS")
rstPAGOS.MoveLast
Set rstPRENDA = dbs.OpenRecordset("select * from PRENDA where PRENDA.codigo = EMPEÑO.codigo")
rstPRENDA.MoveLast
fechaINICIAL = rstEMPEÑO("fecha de empeño")
tipo = rstPRENDA("tipo")
fechaVencimiento = rstPAGOS("fecha de vencimiento")
If tipo = "metal" Then
fechaVencimiento = fechaINICIAL + 30
Else
 fechaVencimiento = fechaINICIAL + 30 * 3
End If
End Sub
Pero al modificar la fecha de empeño me indica el sig. Error:
"Se ha producido el error '3601' en tiempo de ejecución. Pocos parámetros. Se esperaba 1". Me lo indica en la sig línea:
Set rstPRENDA = dbs.OpenRecordset("select * from PRENDA where PRENDA.codigo = EMPEÑO.codigo")
No entiendo a qué se debe el error.
¿Puedes ayudarme?
Muchas gracias
Saludos

1 respuesta

Respuesta
1
Supongo que lo que quieres es que en el formulario basado en la tabla empeño tras incorporar el código de prenda e introducir la fecha de empeño, busque el código en la tabla prenda y dependiendo del tipo sume 30 o 90 al la fecha para incorporar el dato en fecha de vencimiento.
Veo que usas demasiado código SQL y pienso que te bastaría con el código que te muestro.
He supuesto que el campo código es numérico, en caso de que sea texto sustituye la línea por esta:
qTipo = DLookup("[tipo]", "prenda", "[codigo]='" & Me.codigo & "'")
Código total:
Private Sub fecha_de_empeño_AfterUpdate()
Dim qTipo As String
qTipo = DLookup("[tipo]", "prenda", "[codigo]=" & Me.codigo)
If qTipo = "metal" Then
Me.fecha_de_vencimiento = Me.fecha_de_empeño + 30
Else
Me.fecha_de_vencimiento = Me.fecha_de_empeño + 30 * 3
End If
End Sub

Ya me comentarás.
Una aperta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas