Format de recherche d'un nom de jour à partir d'une date

[Résolu]
Signaler
Messages postés
13
Date d'inscription
mercredi 27 décembre 2006
Statut
Membre
Dernière intervention
23 janvier 2009
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
salut
je suis bloqué dans le travail d'un état d'heures d'employés par trimestre.
c'est compliqué d'expliquer et de comprendre ça mais j'espére que quelqu'un puisse m'aider:
cette état comporte donc 3mois et 31jours.je suis bloqué dans la partie que je doit comparer le jour de la date par le jour dimanche pour que l'employé n'ai pa d'heure dans ce jour car c'est un jour férié.donc je doit comparer une date sous format date jour/mois/année par le nom de jour dimanche j'ai fais trop d'essai mais sans resultat.
voici mon programme pour plus vous faire comprendre
  

For I = 1 To rs("nbre")
                 
                    If nb < rs("nbre") Then
                     X = Str(Rsnet("jour")) & "/" & Str(Mois) & " / " & Str(Me.txtAnnee)                       
                             If IsDate(X) Then  
                              Else      'si x n'est pas une date.exemple le 30fevrier n'es pa une date'               
                                  On Error GoTo Err2
                             End If                              sql2 "select * from FERIE WHERE jour" & SQLDate(X)
'SQLDate(X) est une fonction de format jj/mm/aaaa.
                              Set Rs2 = DBCOM.OpenRecordset(sql2, dbOpenDynaset)
                              If Rs2.RecordCount > 0  'et nom de jour de x = dimanche Then
                                
                                .Edit
                                Rsnet(0) = 0  'le mois par exemple janvier  pour trimestre 1
                                .Update
                                 'nb = nb + 2
                              Else
                                .Edit
                                Rsnet(0) = 2  'le mois
                                .Update
                                 nb = nb + 2
                              End If               
                                       
                   
                    
                      If nb < rs("nbre") Then
                         Mois = Mois + 1
                            X = Str(Rsnet("jour")) & "/" & Str(Mois) & " / " & Str(Me.txtAnnee)
                                If IsDate(X) Then
                                  Else
                                    On Error GoTo Err2
                                End If                            sql2 "select * from FERIE WHERE jour" & SQLDate(X)
                            Set Rs2 = DBCOM.OpenRecordset(sql2, dbOpenDynaset)
                            MsgBox Day(X)
                            If Rs2.RecordCount > 0  Then
                                
                                .Edit
                                Rsnet(1) = 0  'le mois par exemple fevrier pour trimestre1
                                .Update
                            Else
                            .Edit
                             Rsnet(1) = 2  'le mois
                            .Update
                            nb = nb + 2
                            End If         
                                           If nb < rs("nbre") Then
                        Mois = Mois + 1
                        X = Str(Rsnet("jour")) & "/" & Str(Mois) & " / " & Str(Me.txtAnnee)
                                If IsDate(X) Then
                                  Else
                                  
                                 On Error GoTo Err2
                                End If                            sql2 "select * from FERIE WHERE jour" & SQLDate(X)
                            Set Rs2 = DBCOM.OpenRecordset(sql2, dbOpenDynaset)
                            If Rs2.RecordCount > 0 Then
                            
                               .Edit
                               Rsnet(2) = 0  'le mois
                               .Update
                              Else
                             .Edit
                              Rsnet(2) = 2  'le mois
                             .Update
                             nb = nb + 2
                           End If                            
                       .MoveNext              
                                              
                           Else
                             If nb = rs("nbre") Then                               
                                X = Str(Rsnet("jour")) & "/" & Str(Mois) & " / " & Str(Me.txtAnnee)
                                 If IsDate(X) Then
                                 Else
                                 End If                                 sql2 "select * from FERIE WHERE jour" & SQLDate(X)
                                  Set Rs2 = DBCOM.OpenRecordset(sql2, dbOpenDynaset)
                                   If Rs2.RecordCount > 0 Then
                                    .Edit
                                    Rsnet(2) = 0  'le mois
                                    .Update
                                    Mois = Mois + 2
                                    .MoveNext
                                  Else
                                    .Edit
                                     Rsnet(2) = 1  'le mois
                                    .Update
                                     nb = nb + 1
                                 End If
                             End If
                      End If
                      Else
                        If nb = rs("nbre") Then
                              
                            X = Str(Rsnet("jour")) & "/" & Str(Mois) & " / " & Str(Me.txtAnnee)
                              If IsDate(X) Then
                               Else
                               End If                               sql2 "select * from FERIE WHERE jour" & SQLDate(X)
                               Set Rs2 = DBCOM.OpenRecordset(sql2, dbOpenDynaset)
                                 If Rs2.RecordCount > 0  Then
                                    .Edit
                                    Rsnet(1) = 0  'le mois
                                    .Update
                                    Mois = Mois + 2
                                    .MoveNext
                                  Else
                                    .Edit
                                     Rsnet(1) = 1  'le mois
                                    .Update
                                     nb = nb + 1
                                 End If
                                
                         End If
                      End If
                      Else
                       If nb = rs("nbre") Then                          
                           
                            X = Str(Rsnet("jour")) & "/" & Str(Mois) & " / " & Str(Me.txtAnnee)
                              If IsDate(X) Then
                               Else
                                   On Error GoTo Err2
                               End If                               sql2 "select * from FERIE WHERE jour" & SQLDate(X)
                               Set Rs2 = DBCOM.OpenRecordset(sql2, dbOpenDynaset)
                                 If Rs2.RecordCount > 0 'et nom de jour de x = dimanche Then
                                     .Edit
                                    Rsnet(0) = 0  'le mois
                                    .Update
                                    Mois = Mois + 2
                                    .MoveNext
                                  Else
                                    .Edit
                                     Rsnet(0) = 1  'le mois
                                    .Update
                                     nb = nb + 1
                                 End If
                             End If
                      End If
                  Mois = Mois - 2
    Next I

X = jj/mm/aaaa per exemple 24/01/2007
j'espere qu'il existe un format  pour la recherche direct de dimanche à partir d'une date

merciiiiii

3 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
comparaison avec "dimanche" !!!
vive la portabilité dans un autre pays... ^^

If weekday(TaDate) = vbSunday Then

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
124
C'est quoi ton problème au juste ? Savoir si une date est un dimanche ?

En utilisant la fonction format, tu peux directement le savoir :

if format(TaDate, "dddd") = "dimanche" then
    'TaDate est un dimanche
end if
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Renfield, je mets celle-là dans un tiroir vide de mon cerveau, s'il y en a encore un...

MPi