Ver valor actual de un campo y su valor previo

Tengo un formulario denominado formServicios donde registro los datos de los servicios que presto a una compañía y que se guardan en una tabla que se llama TblServicios en la cual hay un campo numérico denominado IdServicio en el que registro el numero de servicio contratado que me suministra la compañía a la que le presto servicios. Lo que necesito es que en cada nuevo registro pueda ver el nuevo valor que estoy agregando en el campo IdServicio así como el valor de ese mismo campo de la ultima vez que me contrataron, o sea poder ver tanto el numero de servicio actual y el penúltimo.

1 respuesta

Respuesta
2

Puedes hacerlo de muchas formas. Por ejemplo, en el evento Al recibir el enfoque del cuadro de texto IdServicio puedes poner

If me.newrecord then

msgbox"El último id registrado es " & dlast("idservicio","tblservicios","idservicio is not null")

end if

Es decir, que si es un registro nuevo y pones el cursor en el control Idservicio, "mira" cual ha sido el último y te lo muestra en un mensaje.

Si tengo la tabla

Y si tengo un formulario cualquiera( da igual que sea único o continuo, pero así lo puedes ver mejor). Cuando pongo el cursor en el control Idservicio nuevo

El código es el que te dije antes

Aunque personalmente lo podría en el evento Al activar registro del formulario.

Hola muchas gracias por tu excelente respuesta. Con eso me ayudas bastante. Pero creo que no formule la pregunta correcta. En vez de solo ver el numero de servicio anterior que fue lo que erróneamente consulté lo que quiero es que el numero del penúltimo servicio se quede registrado en la ficha del nuevo servicio que estoy registrando. Que queden los números de los dos últimos servicios en el formulario para hacer cualquier consulta futuras sin tener que moverme entre los registros. Con la idea que me diste resolví creando un nuevo campo en la TblServicios y lo llamé IdServicioAnterior (txtServicioAnterior) y que en ese nuevo campo quede registrado ese numero. Probé y funcionó con el método que me enviaste modificando algunos aspectos. En el evento Al recibir el enfoque del cuadro de texto IdServicio puse:

If me.newrecord then

Me.txtServicioAnterior= dlast("idservicio","tblservicios","idservicio is not null")

end if

Y funciona. Solo que estoy agregando más información y datos a la TblServicios haciéndola más pewsada y no se si habrá otra forma de hacerlo. Gracias anticipadas por si me puedes dar otra idea para no recargar tanta información a la TblServicios

No debes tener ningún problema por añadirle muchos campos a la tabla. Te digo lo que yo haría. Si tengo la tabla TblServicios

Le he añadido un Id porque no sé si el orden en que te llegan los Idservicios son correlativos o el nuevo es siempre mayor que el anterior y así te permite "poner" un cierto orden ascendente.

En el formulario, la instrucción se la pongo en el evento Al activar el registro del formulario. Lógicamente en el primer registro, en Anterior no me pondrá nada, ya que no hay.

Anoto los datos que sea y cuando me voy al segundo registro

Relleno los datos

Y cuando me voy al siguiente

La ventaja de tener en la tabla un campo Anterior es que luego no tienes que estar diciéndole que calcule cual sería el anterior en caso de que busques un registro cualquiera.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas