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.
- ValidationRule para cada campo parece ser ignorado
- 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