Bonjour à tous,

Dans un formulaire, j'ai une zone de texte dont le contenu change sur l'évènement Activation (Form_Current) du formulaire pour afficher un contenu correspondant à la date de l'enregistrement le plus récent (je récupère le contenu du champ "bilanControle"). Cette date est renseignée dans le champ "dateControle".

Ce que je ne comprends pas, c'est pourquoi certaines dates provoquent le message "erreur 3021 - aucun enregistrement en cours", et pas d'autres.

Exemple : si j'essaye d'entrer une date pour le mois de septembre, entre le 1er et le 8 le message d'erreur apparaît. Si je mets le 9 il n'apparait pas. Du 10 au 12 il apparaît. A partir du 13 et + il n'apparait plus.

Quelqu'un a t-il une idée sur ce qui ne va pas dans le code ci-dessous ? C'est la ligne 31 qui cloche, la suite est sans importance.

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
22
23
24
25
26
27
28
29
30
31
    Dim db As DAO.Database: Set db = CurrentDb
    Dim rst As DAO.Recordset
    Dim strSQL As String
    Dim daDate As Date
 
    strSQL = "SELECT Max(T_CommercesControles.dateControle) AS MaxDeDateControle FROM T_CommercesControles " _
    & "GROUP BY T_CommercesControles.idCommerce_FK " _
    & "HAVING T_CommercesControles.idCommerce_FK=" & Me.idCommerce_PK & ";"
 
    Set rst = db.OpenRecordset(strSQL)
 
    If rst.EOF Then
        Me.SF_Installations.Form.txtCommerceControle.Value = "Contrôle à effectuer"
        rst.Close
        Set rst = Nothing
        Set db = Nothing
        Exit Sub
    End If
 
    daDate = rst("MaxDedateControle")
 
    rst.Close
    Set rst = Nothing
 
    strSQL = "SELECT T_CommercesControles.dateControle, T_CommercesControles.bilanControle " _
    & "FROM T_CommercesControles " _
    & "WHERE T_CommercesControles.dateControle =#" & daDate & "# AND T_CommercesControles.idCommerce_FK=" & Me.idCommerce_PK & " ; "
 
    Set rst = db.OpenRecordset(strSQL)
 
    If Year(rst("dateControle")) < Year(Date) Then
Merci