Realizar una acción en base al valor de un cuadro combinado
Publicado por Jorge (4 intervenciones) el 25/05/2020 01:45:46
Buenas, estoy tratando de hacer que, dependiendo del valor que seleccione en una lista de un cuadro combinado, pueda establecer un valor en un cuadro de texto con formato "fecha". Para esto estoy usando el siguiente código:
1- Le digo a mi primer campo de fecha ("fecha_hecho") que no puedo establecer una fecha si mi campo ("causa") no tiene un valor definido:
2- Le digo al campo ("causa") que es mi lista de opciones que cuando entre me establezca estos valores en variables publicas tipo String (*Esta opción también la puedo aplicar al cargar el formulario*):
3- Si el valor del campo ("causa") corresponde a el valor de una de las variables, al establecer una fecha en el campo ("fecha_hecho"), deberá establecer esa misma fecha en el campo ("fecha_pnafu"), y en el campo ("cont_day") debera comenzar a contar los días respecto a la fecha del campo ("fecha_pnafu") y el campo ("fechaHoy"):
El problema que se presenta es que el campo ("fecha_hecho") le asigna la fecha al campo ("fecha_pnafu") sin importar la restricción que solo asignara la fecha al campo ("fecha_pnafu") si el valor del campo ("causa") es igual al valor de las variables.
*NECESITO QUE ALGUIEN ME EXPLIQUE... AYUDA POR FAVOR*
1- Le digo a mi primer campo de fecha ("fecha_hecho") que no puedo establecer una fecha si mi campo ("causa") no tiene un valor definido:
1
2
3
4
5
6
7
8
9
10
11
'DEFINEME LA CAUSA
Private Sub fecha_hecho_GotFocus()
On Error Resume Next
If IsNull(Me![causa]) Then
Beep
MsgBox "Por favor define la Causa", vbInformation, "No hay Causa"
causa.SetFocus
Exit Sub
End If
On Error GoTo 0
End Sub
2- Le digo al campo ("causa") que es mi lista de opciones que cuando entre me establezca estos valores en variables publicas tipo String (*Esta opción también la puedo aplicar al cargar el formulario*):
1
2
3
4
5
6
7
Private Sub causa_GotFocus()
'CAUSAS CON VALOR ESTABLECIDO PARA VARIABLES
c1 = "PERMANENCIA"
c2 = "EVADIDO"
c3 = "RETARDO"
c4 = "FUERA"
End Sub
3- Si el valor del campo ("causa") corresponde a el valor de una de las variables, al establecer una fecha en el campo ("fecha_hecho"), deberá establecer esa misma fecha en el campo ("fecha_pnafu"), y en el campo ("cont_day") debera comenzar a contar los días respecto a la fecha del campo ("fecha_pnafu") y el campo ("fechaHoy"):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
'CUANDO LA CAUSA ES POR PNAFU
Private Sub fecha_hecho_AfterUpdate()
On Error Resume Next
If [causa] = c1 Or [causa] = c2 Or [causa] = c3 Or [causa] = c4 Then
fecha_pnafu = fecha_hecho
cont_day = DateDiff("D", fecha_pnafu, fechaHoy)
Exit Sub
End If
If [causa] <> c1 Or [causa] <> c2 Or [causa] <> c3 Or [causa] <> c4 Then
fecha_pnafu = ""
cont_day = ""
Exit Sub
End If
On Error GoTo 0
End Sub
El problema que se presenta es que el campo ("fecha_hecho") le asigna la fecha al campo ("fecha_pnafu") sin importar la restricción que solo asignara la fecha al campo ("fecha_pnafu") si el valor del campo ("causa") es igual al valor de las variables.
*NECESITO QUE ALGUIEN ME EXPLIQUE... AYUDA POR FAVOR*
Valora esta pregunta


0