Bonjour,
Je cherche à compter le nombre d'enregistrements d'une date en interrogeant sur un champ date, via la fonction Dcount. Je vous livre mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub Ligne_Interv()
Dim Ma_fin, Texte82, Texte84 As Date
 
    If Me.Texte82 > Me.Texte84 Then Me.Texte84 = Me.Texte82
    Ma_fin = Me.Texte82
    Mon_Param = Texte84
 
    While Ma_fin <= Me.Texte84
        If DCount("[Ma_Date] + [Genesis] + [N°]", "Interv_date", "[Ma_Date] =#" & Ma_fin & "# And [Genesis] = '" & Texte136 & "' And [N°] = " & Me.Interv_Ident_N°) = 0 Then
            If Me.Note <> "" Then
        MsgBox ("Date du " & Ma_fin & ": " & DCount("[Ma_Date]", "Interv_date", "[Ma_Date] = # " & Format(Ma_fin, "mm/dd/yy") & " #") & "-" & Len(Ma_fin) & "-" & Format(Ma_fin, "dd/mm/yy"))
                DoCmd.RunSQL "INSERT INTO Interv_date ( N°,Origine,Ma_Date,Ma_date_Fin,Genesis,Type_Inter,Note_date,Projet,Salle ) VALUES (  " & Me.Interv_Ident_N°.Value & " ,'" & [Form_Menu_General].[M_Login] & "','" & Ma_fin & "','" & Ma_fin & "','" & Texte136 & "','" & Mon_Lib_Lign & "','" & Substr_Car_Intru(Me.Texte59) & "','" & Substr_Car_Intru(Me.Texte51) & "','" & Trim(Mid(Mon_Lib, InStr(1, Mon_Lib, ":") + 1, Len(Mon_Lib) - InStr(1, Mon_Lib, ":") + 1)) & " ');"
            Else
                DoCmd.RunSQL "INSERT INTO Interv_date ( N°,Origine,Ma_Date,Ma_date_Fin,Genesis,Type_Inter,Projet,Salle ) VALUES (  " & Me.Interv_Ident_N°.Value & " ,'" & [Form_Menu_General].[M_Login] & "','" & Ma_fin & "','" & Ma_fin & "','" & Texte136 & "','" & Mon_Lib_Lign & "','" & Substr_Car_Intru(Me.Texte51) & "','" & Trim(Mid(Mon_Lib, InStr(1, Mon_Lib, ":") + 1, Len(Mon_Lib) - InStr(1, Mon_Lib, ":") + 1)) & " ');"
            End If
        Else
            MsgBox ("Accès non fait pour la date du " & Ma_fin & ". Il existe une entrée pour le n°: " & Texte136 & ". Merci de modifier la ligne si nécessaire.")
        End If
        Ma_fin = Ma_fin + 1
    Wend
End Sub
Les variables Texte81 et Texte82 sont des zones de texte au format imposé en formulaire "jj/mm/aa".
"Texte81" est une date de début, "Texte82" une date de fin. on décrit ainsi une plage de dates.
J'ajoute une ligne dans la table "Interv_date" pour toutes les dates si il n'existe pas d'enregistrement correspondant recherché par un DCOUNT.
Le champ "Ma_date" de la table "Interv_Date" est un champ date au format "jj/mm/aa".
Lorsque le numéro du jour de "Ma_fin" est à une date inférieure au 12 de n'importe quel mois le Dcount prend le numéro du jour pour numéro de mois.
exemple: je cherche à compter les enregistrements du 3 mai 2012 soit 03/05/12, le comptage est effectuté sur le 5 mars 2012 soit 05/03/2012.
Si je recherche les enregistrements > au 12/08/12 pas de problème, je dénombre correctement ! Qui peut m'aider?