Copiar ultimo dato de un campo en el siguiente registro en access

Y felices fiestas, he estado revisando hilos anteriores sobre esta misma pregunta y he encontrado una solución para un campo y necesito que sean varios.

Copio lo que he hecho

Private Sub Detalle_Click()

End Sub

Private Sub Form_Current()
On Error GoTo Err_Form_Current
If Me.NewRecord = True Then
Dim miBD As Database, misRegistros As Recordset, miSQL As String, miValor As Integer
Set miBD = CurrentDb
miSQL = "SELECT Last(Huespedesgeneral.Reserva)AS UltimoDeReserva FROM Huespedesgeneral;"
Set misRegistros = miBD.OpenRecordset(miSQL, dbOpenSnapshot)
miValor = misRegistros!UltimoDeReserva
misRegistros.Close
Set miBD = Nothing
Me.Reserva = miValor
Else
End If
Exit_Form_Current:
Exit Sub
Err_Form_Current:
MsgBox Err.Description
Resume Exit_Form_Current
End Sub

Pero solo me copia uno y necesito poder hacerlo con varios .

Gracias a todos y feliz año 2020

1 Respuesta

Respuesta
2

Puedes usar la función DLast() directamente para obtener el último valor registrado de un campo (o más de uno si la repites). Por ejemplo:

Private Sub Form_Current()
Me.txt01=DLast("Campo1","NombreTabla")
Me.txt02=DLast("Campo3","NombreTabla")
Me.txt03=DLast("Campo5","NombreTabla")
End Sub

Incluso puedes filtrar los resultados devueltos por DLast, por ejemplo, si quieres que te traiga los últimos registros del "ClienteX":

Private Sub Form_Current()
Me.txt01=DLast("Campo1","NombreTabla","Cliente='ClienteX'")
Me.txt02=DLast("Campo3","NombreTabla""Cliente='ClienteX'")
Me.txt03=DLast("Campo5","NombreTabla""Cliente='ClienteX'")
End Sub

Un saludo.


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas