Access - De una fecha dada, buscar un día en concreto anterior a la misma

   
Vista:

De una fecha dada, buscar un día en concreto anterior a la misma

Publicado por Anajulia (3 intervenciones) el 29/07/2014 18:21:17
Hola

(A raíz de una consulta que vi aquí, me inspiré , para tratar un asunto mío,pero no doy con el clavo.Me explico:)

1-Tengo un formulario con dos campos( cuyo origen está en una tabla) con formato fecha.
Se llaman: "RPIR4", "RPIR5" ( sin comillas)

2-Pretendo que una vez he insertado la fecha en el campo "RPIR4", aparezca de forma automática la misma fecha en el campo "RPIR5", pero retrasándola al martes inmediatamente anterior.
Un ejemplo:
"RPIR4".......... 30/07/2014 ( sería míércoles), así que quiero que aparezca:
"RPIR5".......... 29/07/2014 (que sería martes)

3-Para ello he hecho el código, que pongo al final y lo he colocado en el evento Después de actualizar, de las propiedades referidas al campo "RPIR4".

4-Sin embargo, al ponerlo en marcha, no obtengo ningún resultado

5- Por favor, alguien podría decirme qué hago mal, y qué debería cambiar para obtener mi propósito?

6-Gracias!!!

7-Éste es el código que he hecho:

If Day(RPIR4) = vbMonday Then
RPIR5 = RPIR4 - 6
ElseIf Day(RPIR4) = vbtuesday Then
RPIR5 = RPIR4
ElseIf Day(RPIR4) = vbWednesday Then
RPIR5 = RPIR4 - 1
ElseIf Day(RPIR4) = vbThurday Then
RPIR5 = RPIR4 - 2
ElseIf Day(RPIR4) =vbFriday Then
RPIR5 = RPIR4 - 3
ElseIf Day(RPIR4) = vbSaturday Then
RPIR5 = RPIR4 - 4
ElseIf Day(RPIR4) = vbSunday Then
RPIR5 = RPIR4 - 5
End If
End Sub
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 Neckkito

De una fecha dada, buscar un día en concreto anterior a la misma

Publicado por Neckkito (1104 intervenciones) el 31/07/2014 09:12:29
Hola!

En el mismo evento que estás utilizando escribe este código:

...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub...
        'Declaramos las variables
    Dim laFecha As Date
    Dim i As Byte
        'Cogemos la fecha del campo
    laFecha = Me.RPIR4.Value
        'Analizamos los días hacia atrás
    For i = 1 To 7
        laFecha = laFecha - 1
            'Si la fecha es martes la escribimos en el campo
        If Weekday(laFecha) = vbTuesday Then
            Me.RPIR5.Value = laFecha
            Exit For
        End If
    Next i
End Sub
...
A ver si así te sale.

Saludos,
firmaMail
http://neckkito.siliconproject.com.ar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

De una fecha dada, buscar un día en concreto anterior a la misma

Publicado por Anajulia (3 intervenciones) el 04/08/2014 11:43:42
Gracias,Neckkito

Al leer tu respuesta (impecable, funciona al perfección !) me di cuenta de que yo había expresado mal la pregunta.
Es decir, yo quiero retrasar la fecha hasta el martes inmediatamente anterior a la misma,salvo que la fecha sea martes.
Si la fecha fuera martes, debería quedar en martes.


No sé si se te ocurre alguna cosa, que pudiera popner en el código que me has mandado..?

Por lo demás, el código que hiciste funciona genial.

Mil gracias!!!!
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

De una fecha dada, buscar un día en concreto anterior a la misma

Publicado por adrian (6 intervenciones) el 03/08/2014 02:01:18
hola y porque no le pones que te reste un dia y te va a aparecer 29/07/2014
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

De una fecha dada, buscar un día en concreto anterior a la misma

Publicado por Anajulia (3 intervenciones) el 04/08/2014 11:44:51
Gracias, adrian !
Ne cesito retrasar más de un día las fechas.
La idea de Neckkito es realmente lo que quiero
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