Establecer una fecha a partir de otra fecha

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
Lo que no entiendo es porque buscas un dato que ya tienes...
Me explico, si lo haces así:
Private Sub fecha_de_empeño_AfterUpdate()
If tipo = "metal" Then
[fechaVencimiento] = [fecha_de_empeño]+ 30
Else
 [fechaVencimiento]= [fecha_de_empeño]+ 30 * 3
End If
end sub
no entiendo porque vas a buscar a las tablas datos que ya tienes en el formulario...
un saludo.
PD. habiendolo visto por encima, creo que lo que tienes mal es:
Set rstPRENDA = dbs.OpenRecordset("select * from PRENDA where PRENDA.codigo = EMPEÑO.codigo")
seria algo parecido a: 
Set rstPRENDA = dbs.OpenRecordset("select * from PRENDA where PRENDA.codigo = " & EMPEÑO.codigo)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas