vba validation ms-access access-vba

vba - Realización de la validación de formulario con un proyecto ADP de Access 2003



validation ms-access (3)

Si nos da un ejemplo de una de sus reglas de validación, podría serle útil.

Sin embargo, he tenido la costumbre de poner la validación antes de la actualización (especialmente cuando tengo algoritmos de validación más complejos)

Actualización: hice algunos experimentos y parece que la regla de validación para el campo SOLAMENTE se verifica cuando realiza una actualización en el campo, pero no si está realizando una actualización en otro lugar del formulario, y no cuando guarda el registro. Así que creo que su solución es mover la validación a Form_BeforeUpdate.

O bien, podría hacer que la columna de la tabla no sea nula, lo que obligaría a los usuarios a hacer algo con el campo.

O, si el campo debe ser "Prueba", entonces podría dar un paso al costado de todo al establecer un valor predeterminado y bloquear el campo para que el usuario no pueda cambiarlo.

Estoy desarrollando una base de datos Access 2003 que utiliza un backend MS SQLServer.

Estoy tratando de hacer Validación de formulario y estoy experimentando algunos problemas.

  1. ValidationRule para cada campo parece ser ignorado
  2. No puedo determinar qué evento debo anular para aplicar la validación sin que la base de datos lo haga. (No estoy en contra de esto, simplemente no sé cómo detectaría los mensajes de error, en lugar de mostrarlos al usuario)

Intenté evitar el número 2 impidiendo el cierre e imponiendo el uso de un "Botón de cierre", pero el usuario puede dar un paso al costado presionando la tecla "tab" o presionando el botón "Siguiente registro" en la parte inferior.

Cualquier sugerencia sería muy apreciada.


Puede ocultar los botones de navegación configurando la propiedad Botones de navegación del formulario en "No". También puede rechazar la tabulación en un nuevo registro estableciendo la propiedad de ciclo del formulario en "Registro actual".

Con cualquier interfaz de aplicación no estricta en Access, suelo bloquear el formulario bastante apretado y suministrar mis propios botones de navegación, botón de cerrar, etc. según sea necesario.


Si está utilizando la propiedad de reglas de validación, puede detectar errores de validación y clave duplicados, entre otras cosas, en el evento Error de formulario:

Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr=2107 Then MsgBox "Validation error! " & ActiveControl.Name End If End Sub

Puede aplicar el uso de su botón de cierre con una variable definida en el nivel del formulario y establecerlo en falso, a menos que se haga clic en el botón.

Option Compare Database Option Explicit Public AllowClose As Boolean Private Sub Form_Load() AllowClose = False End Sub Private Sub Form_Unload(Cancel As Integer) Cancel = Not AllowClose End Sub Private Sub cmdClose_Click() On Error GoTo Err_cmdClose_Click AllowClose = True DoCmd.Close Exit_cmdClose_Click: Exit Sub Err_cmdClose_Click: MsgBox Err.Description Resume Exit_cmdClose_Click End Sub

De: http://www.tek-tips.com/faqs.cfm?fid=2071