¿Qué está mal en este código?

Al abrir un formulario quiero que me de el mensaje si se cumple la condicion pero sólo del último registro: o en otro caso; del registro que tiene el focus.

Private Sub Form_Current()

DoCmd.GoToRecord , , acLast

If Me.CurrentRecord = Me.RecordsetClone.RecordCount Then

Dim nrp As Integer

Dim nrs As Integer

nrp = Me.NRUnits

nrs = Me.NR_Units_Supplied

If nrp > nrs Then MsgBox "Las unidades solicitadas son mayor a las enviadas"

End If

End If
End Sub

Acualmente me da el mensaje del primer registro porque cumple la condición.

Muchas Gracias.

1 respuesta

Respuesta
1

La instrucción DoCmd. GoToRecord,, acLast no se puede poner en el evento Current, en todo caso la puedes poner en el evento Load o Activate del form.

Lo que tienes puesto te comprobará los datos del registro actual.

Para lo que quieres hacer comprobaciones, es más útil usar las funciones de dominio agregado (DCount, DSum, DLookup...)

Gracias por tu respuesta.. Yo voy a agregando una linea a una tabla temporal.. y dependiendo de dos valores.. tengo que hacer una cosa ú otra... como puedo hacerlo para que me haga ese IF.. dependiendo de esos dos valores de la ultima linea agregada?

Puedes usar la función DMax.

Max = DMax(Dato, Tabla, Condición)

En Max tendrás el valor máximo de Dato en la tabla Tabla que cumpla Condición.

Gracias.. Voy a comprobar con MAx aunque lo que busco es que me lea los valores del ultimo registro si se cumple la condición; no el que tenga el valor máximo. Te comento.

un saludo

Para buscar en el último registro insertado puedes usar la función DLast en vez de DMax.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas