Bonsoir,
Le but de cette "routine" est, préalablement à la saisie d'un rendez-vous, d'indiquer à l'utilisateur si un rendez-vous est déjà préexistant sur le créneau horaire.
Je voulais utiliser ce code ... mais il ne fonctionne pas :
Le "daterdv*" est sous la forme 16/08/2012 ... ce qui explique le format() et correspond à la date début/fin du futur rdv.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Dim rst As DAO.Recordset Dim nom As Variant Dim oDb As DAO.Database Set oDb = CurrentDb Set rst = oDb.OpenRecordset("select * from t_rendezvous where (horairedebut between #" & Format(DateRdV1, "mm/dd/yyyy") & " " & HoraireD & "# and #" & Format(DateRdV2, "mm/dd/yyyy") & " " & HoraireF & "#) or (horairefin between #" & Format(DateRdV1, "mm/dd/yyyy") & " " & HoraireD & "# and #" & Format(DateRdV2, "mm/dd/yyyy") & " " & HoraireF & "#)", dbOpenDynaset) rst.MoveFirst Do Until rst.EOF MsgBox rst.Field("NR").Value rst.MoveNext Loop Set rst = Nothing Set oDb = Nothing end sub
Le "horaire*" étant l'heure de début/fin du futur rendez-vous
Le "horairedebut" ou "horairefin" correspondent aux rdv déja existants (date + heure) sur lesquels la requête tend à déterminer s'il y a, ou non, "chevauchement" de créneaux
Le pire ... c'est que la requête "en dur" fonctionne et donne des résultats sous forme d'une table :
Il doit donc y avoir un pb du côté du traitement du rst mais je ne vois pas où ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part "select * from t_rendezvous where (horairedebut between #08/16/2012 09:00# and #08/16/2012 11:00#) or (horairefin between #08/16/2012 09:00# and #08/16/2012 11:00#);"
S'il vous plaît ... si quelqu'un peut m'éclairer ... Merci
Partager