Bonjour,
J'ai récupéré une DB qui permet de gérer un agenda avec une fonction de drag and drop
Je l'ai un peu modifiée à ma sauce en permettant de permuter des RV
Exemple :
RV1 Lundi de 9h00 à 11h00
RV2 Mercredi de 14h00 à 15h00
RV3 Mercredi de 16h à 17h00
Je positionne RV1 sur RV2
Je vérifie que RV1 est plus long que RV2
Je vérifie s'il y a de la place après RV2 pour placer RV1 (et c'est là que je coince) sinon je redimensionne RV1 à la taille de RV2
Je positionne RV2 à la place de RV1
Le problème est sur la ligne DLookup qui devrait ne rien trouver !
J'espère être assez clair
Merci pour votre aide
HD2 = nouvel horaire début de RV1
HF2 = nouvel horaire fin de RV1
NR = n° de RV (clé unique)
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 'Cas 2 : Le cadre source est plus grand ==> il prend la taille du plus petit LeSQL = "Select NR, HoraireDebut, HoraireFin from T_RendezVous where HoraireDebut=" & FormatDateUS(HD2) Set Rec1 = CurrentDb.OpenRecordset(LeSQL, dbOpenDynaset) If Not Rec1.EOF And Rec1!HoraireFin < HF2 Then 'Vérifier s'il y a de la dispo après le RV qu'on va écraser 'Nouveau range = rec1!horairefin - HF2 If IsNull(DLookup("NR", "T_RendezVous", "[NR]<>" & CStr(NR) & " and [HoraireDebut]<" & FormatDateUS(HF2) & " and [HoraireFin]>" & FormatDateUS(Rec1!HoraireFin))) Then MsgBox "Dispo" Rec.Edit Rec!HoraireFin = HF2 Else MsgBox "Pas de dispo" Rec.Edit Rec!HoraireFin = Rec1!HoraireFin End If Rec!HoraireDebut = HD2 Rec.Update Rec1.Edit DIF2 = DateDiff("n", Rec1!HoraireDebut, Rec1!HoraireFin) Rec1!HoraireDebut = HD1 Rec1!HoraireFin = DateAdd("n", DIF2, HD1) Rec1.Update MajPlanning End If
Partager