Access - Validar Fecha de Operaciones

 
Vista:

Validar Fecha de Operaciones

Publicado por Jesus Vazquez (13 intervenciones) el 12/04/2007 06:07:34
Tengo un campo donde capturo la fecha, mi problema es que por "errores de dedo" este campo permite la entrada de cualquier fecha, lo cual afecta las operaciones de calculo del programa.

¿Como puedo hacer para establecer una regla de validacón en la cual compare la fecha de operación -usuario- contra la fecha actual?

Tendria dos casos, en los cuales deseo que la regla de validación no permita el ingreso de la fecha equivocada, el primero seria:
1.- Si la diferencia entre ambas fechas da positivo (Fecha de captura mayor a fecha de opreacion) y no debe de ser mayor de X dias,

El segundo caso
2.- Fuera negativo (fecha de operación mayor a fecha de captura -lo cual sería ilogico-)

Saludos

jvg
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Validación de fecha en campo

Publicado por Alejandro (4142 intervenciones) el 08/08/2023 20:23:15
Puedes utilizar el evento "BeforeUpdate" en el campo de fecha para realizar la validación que deseas antes de que los datos se guarden en la tabla. Aquí tienes un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Private Sub FechaCampo_BeforeUpdate(Cancel As Integer)
    Dim fechaCaptura As Date
    Dim fechaOperacion As Date
    Dim diferenciaDias As Long
 
    ' Obtener la fecha actual
    fechaOperacion = Date
 
    ' Obtener la fecha capturada por el usuario
    fechaCaptura = Me.FechaCampo.Value
 
    ' Calcular la diferencia en días entre las fechas
    diferenciaDias = DateDiff("d", fechaCaptura, fechaOperacion)
 
    ' Establecer límites de diferencia en días
    Dim maxDias As Long
    maxDias = 10 ' Cambiar este valor según tus requerimientos
 
    ' Realizar la validación
    If diferenciaDias > 0 And diferenciaDias <= maxDias Then
        ' La fecha de captura es mayor a la fecha de operación pero dentro del límite permitido
        ' Permitir el ingreso
    ElseIf diferenciaDias < 0 Then
        ' La fecha de operación es mayor a la fecha de captura
        ' Mostrar mensaje de error
        MsgBox "La fecha de operación no puede ser mayor a la fecha de captura.", vbExclamation, "Error de Validación"
        Cancel = True ' Cancelar el ingreso
    ElseIf diferenciaDias > maxDias Then
        ' La fecha de captura es mayor a la fecha de operación y fuera del límite permitido
        ' Mostrar mensaje de error
        MsgBox "La diferencia en días es mayor al límite permitido.", vbExclamation, "Error de Validación"
        Cancel = True ' Cancelar el ingreso
    End If
End Sub

Este código compara la fecha de captura ingresada por el usuario con la fecha actual y realiza la validación según tus dos casos: si la diferencia de días es positiva dentro del límite permitido y si la diferencia es negativa. Asegúrate de ajustar el valor de `maxDias` según tus requerimientos.

Coloca este código en el evento "BeforeUpdate" del campo de fecha en el formulario. Recuerda que esta validación se ejecutará antes de que los datos se guarden en la tabla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar