Bonjour à tous
Comme dit dans le titre lorsque je demande à rechercher une valeur horaire dans la requête "rqprochainscreneauxmairies" que ça soit avec un dlookup ou bien un recordset celle-ci fait planter mon code alors que la requête par elle même est suffisamment rapide quand ouverte dans l'interface et aucune erreur n'est à déplorer...
Si je réduis la dite requête et que je la complète avec des cdate() comme l'on voit sur sa première ligne, cela ne change rien... s'agît il d'une erreur de conversion ? Le champ récepteur de la donnée dans la table à remplir est pourtant au format date...
Il arrive que la procédure se complète correctement mais cela mais au moins 10 min et mon gestionnaire de taches m'indique qu' Access est entrain de prendre des ressources de calcul, la requête ne comprenant que 132 lignes et certaines d'entre elles étant des null...
La requête :
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45 Public Function RepositionnementRDV() Dim rs As DAO.Recordset Dim rs2 As DAO.Recordset Dim rs3 As DAO.Recordset Dim db As DAO.Database Set db = CurrentDb Set rs = db.OpenRecordset("select idevt,idmairie,dateheureecheance from rqrecontactsciblesechus") Set rs2 = db.OpenRecordset("tblTmpRepositionnementRDV") 'logique repositionnement rdv au créneau le plus proche si existant : 'Effacement de la table temporaire If rs.RecordCount > 0 Then db.Execute ("delete * from tblTmpRepositionnementRDV") End If 'Remplissage table temporaire Do While Not rs.EOF rs2.AddNew rs2!IDEVT = rs!IDEVT rs2!IdMairie = rs!IdMairie rs2!dateheureecheance = rs!dateheureecheance rs2!ProchainCreneau = DLookup("[Prochain créneau]", "rqprochainscreneauxmairies", "idmairie='" & rs!IdMairie & "'") 'rs2!Résultat = IIf(IsNull(rs3![Prochain Créneau]), "Créneau inexistant ou mal renseigné", "Repositionnement réussi") rs2.Update rs.MoveNext Loop rs.Close: Set rs = Nothing rs2.Close: Set rs2 = Nothing Set db = Nothing End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT RqRecontactsCiblesEchus.Mairie, Format([DateEcheanceEvt],"ddd dd mmm yyyy hh:nn") AS Echeance, Min(Format([Creneau],"ddd dd mmm yyyy hh:nn")) AS [Prochain créneau], RqUnionProchainsCreneauxEVTS.idmairie, RqRecontactsCiblesEchus.IDEvt, DateDiff("d",[prochain créneau],[echeance]) AS [Diff jours] FROM RqRecontactsCiblesEchus INNER JOIN RqUnionProchainsCreneauxEVTS ON RqRecontactsCiblesEchus.IDMairie = RqUnionProchainsCreneauxEVTS.idmairie GROUP BY RqRecontactsCiblesEchus.Mairie, Format([DateEcheanceEvt],"ddd dd mmm yyyy hh:nn"), RqUnionProchainsCreneauxEVTS.idmairie, RqRecontactsCiblesEchus.IDEvt;
Partager