Campo y Variable

Ante todo gracias por la ayuda que me puedan prestar. Trataré de simplificar la pregunta de la siguiente manera: Deseo ingresar un dato en un campo numérico de una tabla de tal manera que este dato nunca tenga un valor inferior al dato del mismo campo en el registro anterior. Es decir, el dato en el registro 10 por decir algo, ¿no debe ser inferior al dato en el registro 9. Me pueden ayudar?
He pensado en una variable que pueda comparar con el valor del registro anterior antes de ingresarlo pero no tengo muy claro como hacerlo.

1 Respuesta

Respuesta
1
Deberías hacerlo desde VBA, en el formulario desde donde quieras ingresar el numero, pones un campo independiente donde insertar el numero. En Propiedades eventos Al salir, pones
Dim Db as Database
Dim Sql AS string
dim Rs as recordset
dim CampoIntro as integer
dim CampoAnterior as integer
Set db = currentdb
CampoIntro = Me.Campo1.Value
Sql = "SELECT Last(TNum.num) AS ÚltimoDenum FROM TNum;"
Set Rs = Db.openrecordset(sql)
if not rs.eof then
CampoAnterior = rs.fields("ÚltimoDenum").Value
Else
End If
If CampoIntro > CampoAnterior then
exit sub
Else
Msgbox "El valor debe ser mayor a " + CampoAnterior
Me.Undo
End If
End Sub
La consulta que creo, lo que hace es buscar el ultimo registro, carga el valor del campo en la variable CampoAnterior y luego la compara con el introducido. Si el valor es mayor, no pasa nada, si el valor es igual o inferior, entonces te da el mensaje de error y pulsa el botón deshacer, es decir, borra el campo introducido.
El problema lo tendrás con el primer valor que introduzcas en la tabla, ya que si lo haces por aquí, entonces te dará error (Uso no válido de Null), porque no tiene ningún valor en el ultimo registro de la tabla. Esto se podría solucionar, pero es un poco más de rollo y si te sirve así, es más fácil. Siempre puedes rellenar el primer registro de la tabla desde la misma tabla y listo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas