Escritura obligada en campo de formulario base datos Access

Tengo una Base de Datos en Access. En uno de sus formularios tengo campo fecha al cual le declaré en la Hoja de Propiedades/Datos/Regla de validación: [Pagado]>=[Fecha] (esto significa que la fecha de este campo PAGADO debe ser mayor que la del campo FECHA VENTA) acompañado de un texto de validación: Lo sentimos, la fecha debe ser posterior a la fecha en que vendiste la factura. Además tiene una regla de validación que me marca en amarillo la celda cuando pongo la fecha.

Todo funciona bien excepto porque si escribo en el campo y quiero borrar y dejar ese campo en blanco e irme a otro no me lo permite y me insiste con el mensaje del texto de validación, no dejándome proseguir mi trabajo en otro campo.

2 respuestas

Respuesta
1

Alexis, personalmente soy enemigo de hacer nada en las tablas. Que sean un simple recipiente de datos. Y si hay que decirle algo, como regla de validación, criterios, etc decírselo en el formulario donde vas a poner los datos. No sé como está construido el formulario, pero, por ejemplo, en el evento Antes de actualizar del control Pagado puedes crear un procedimiento de evento y poner

If pagado<=fechaventa then

Msgbox"De eso nada monada, la fecha tiene que ser mayor que FechaVenta", vbokonly,"A empezar de nuevo"

Docmd. Cancelevent

end if

Es decir, que cuando tu escribes una fecha en el control Pagado, al pulsar Enter o irte a otro control, comprueba si esa fecha que has escrito es menor igual o mayor a la que hay en el control FechaVenta. En caso de que sea menor o igual te sale el mensaje y cuando aceptas, el cursor se queda en Pagado para que la cambies.

No puedo ser más concreto. Convendría que pusieras una imagen del formulario.

Te digo lo mismo que en la otra respuesta. Lo que te dicen de las tablas es un solemne disparate. Imagínate que tienes una sala de baile. ¿Cuándo prefieres limitar la entrada de gente no deseada? ¿Cuándo ya están dentro de la sala( tablas) o cuando pasen por el control de acceso(formulario)?

Con respecto a lo de migrar a... es como si ahora mismo te digo, por si el día de mañana conduces un Bugatti Veyron es preferible que desde ahora mismo le pongas a tu Peugeot 207, carrocería de carbono, frenos de titanio, carburador multiesprectral cuántico y ruedas de 30 cm de ancho. Me podrías decir ¿Cuándo voy a conducir un Bugatti Veyron? Y si lo que vaya a conducir es un Masserati o una Harley Davidson. O puedo migrar a Oracle, o...

Pero si prefieres la otra respuesta, no hay más que hablar.

Respuesta
1

Las reglas de validación en tablas si son importantes si piensa hacer consultas desde otros programas como Excel o herramientas para consultar bases de datos, se llaman CHECK y no se incluyeron en Access por solo lujo, no obstante, si es bueno incluirlo en la tabla, siempre y cuando piense hacer consultas desde otros sistemas o exportar, ya que acá no va a tener el formulario para validar, por esta la razón existe la validación a nivel de tabla. En mi caso son importantes cuando exporto tablas de Access a PostgreSQL me aseguro que la tabla en el servidor de datos contenga el CHECK.

De todas formas le recomiendo validar a nivel de formulario en Access.

Complemento del código que le suministran con lo siguiente.

If Pagado <= FECHA_VENTA Then
MsgBox "Lo sentimos, la fecha debe ser posterior a la fecha en que vendiste la factura", vbInformation, "Cuidado !!"
Cancel = True
Me.Pagado.Undo
End If

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas