Vous avez vraiment besoin de faire des regroupements sur cette requête ?
Sinon essayé de mettre sous le champ ID, à la place de regroupement, expression.
Cdlt,
Version imprimable
Vous avez vraiment besoin de faire des regroupements sur cette requête ?
Sinon essayé de mettre sous le champ ID, à la place de regroupement, expression.
Cdlt,
avec expression ça ne fonctionne pas non plus ... et ai enlever les regroupement et toujours la procédure qui stop à : Set rsField1 = rs1.Fields("ID").Value
Je vous joins ma version :
Gestion Planning v1.zip
Cdlt,
Merci user !
Bon la récurrence refonctionne pratiquement ... il n'y qu'une seule copie du rdv le choix de récurrence en nombre n'est plus pris en compte ... j'ai modifier la procédure .mais rien n'y fait vous aviez décelé une erreur tout à l'heure...
Oui, il faudrait mettre un MoveFirst avant le test rsField1.EOF:
Mais bien sur, il faut qu'il y ai toujours au moins 1 élève :
à+Code:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127 Private Sub CmdActualiser_Click() Dim db As DAO.Database Dim rs1 As DAO.Recordset Dim rs2 As DAO.Recordset Dim rsField1 As DAO.Recordset Dim rsField2 As DAO.Recordset Dim n As Long, r As Long, dt As Date, HD As Date, HF As Date, IT, elv As String Dim s As Long Dim M As String 'variable memo Dim cls As String 'variable classe Dim prf As String 'variable profs Dim ctp As String 'variable cursustype Dim NA As String 'variable nom atelier Set db = CurrentDb Set rs1 = db.OpenRecordset("R_RendezVous2") Set rs2 = db.OpenRecordset("T_RendezVous", dbOpenDynaset) Do Until rs1.EOF IT = rs1!ID_Salles dt = rs1!DateRdV1 r = rs1!Recurrence n = rs1!NbRecurrences HD = rs1!HoraireDebut HF = rs1!HoraireFin 'elv = rs1!ID.Value s = rs1!TypeRdv cls = rs1!Classes prf = rs1!Professeur ctp = rs1!CursusType NA = Nz(rs1!Atelier_NOM, "") ' affectation au recordset du jeu d'enregistrement associé au champ ID Set rsField1 = rs1.Fields("ID").Value 'M = rs1!Memo dt = dt + r HD = HD + r HF = HF + r Do While n > 0 n = n - 1 If (Not EstFerie(dt)) And (Not EstConge(dt)) And (Weekday(dt) <> 1) Then ' si jour ouvré. rs2.FindFirst "ID_Salles like '" & IT & "' and HoraireDebut=#" & Format(HD, "mm/dd/yyyy hh:nn") & "#" 'and DateRdV1=#" & Format(dt, "mm/dd/yyyy") & "#" If rs2.NoMatch Then rs2.AddNew rs2!ID_Salles = IT rs2!DateRdV1 = dt rs2!Recurrence = r rs2!NbRecurrences = n rs2!HoraireDebut = HD rs2!HoraireFin = HF rs2!TypeRdv = s 'rs2!ID.Value = elv rsField1.MoveFirst If Not rsField1.EOF Then Set rsField2 = rs2.Fields("ID").Value Do Until rsField1.EOF rsField2.AddNew rsField2.Fields(0).Value = rsField1.Fields(0).Value rsField2.Update rsField1.MoveNext Loop rsField2.Close Set rsField2 = Nothing End If rs2!Classes = cls rs2!Professeur = prf rs2!CursusType = ctp rs2!Atelier_NOM = NA 'rs2!Memo = M rs2.Update End If dt = dt + r ' on prend le jour d'après + récurrence HD = HD + r HF = HF + r Else ' si dimanche ou jour férié. dt = dt + r ' on passe au jour suivant HD = HD + r HF = HF + r n = n + 1 End If Loop rsField1.Close Set rsField1 = Nothing rs1.MoveNext Loop rs1.Close Set rs1 = Nothing rs2.Close Set rs2 = Nothing MajPlanning End Sub
Merci pour votre aide ! je 'ai plus qu'à arranger tout ça et peu avancer sur le reste! une dernière question et je ferme ce post ! comment faire en sorte de ne pas rendre les rs1 ou rs2 obligatoires ? est ce que je peux ecrir : AT=res1!Nz(NomAtelier,0) ?
Vous pouvez faire :
Le 2ème argument de la fonction nz correspond à la valeur qu'elle va renvoyer si res1!NomAtelier est nulle.Code:AT=Nz(res1!NomAtelier,"")
Cdlt
merci !
bonne soirée !
Bonjour à tous,
je reviens avec un souci de champ à valeurs multiples... J'ai créé un requête d'ajout pour alimenter une table "tuteur" basée sur la table "étudiant", cette requête est exécutée par un bouton; le but est de copier le nom prénom adresse de cette table quand l'étudiant et le tuteur sont la même personne et/ou de recopier l'adresse si c'est la même que celle entrée sur le formulaire étudiant. le problème c'est que la table tuteur contient un champ multi V pour les étudiants. Un dès que je lance la requête un message d'erreur apparaît "Une requête INSERT INTO ne peut pas contenir un champ à plusieurs valeurs"
Je sollicite votre aide...
merci,
cordialement,
Laurent
La requête:
Pièce jointe 211037
Le message d'erreur :
Pièce jointe 211036
Bonjour,
merci pour votre aide précieuse !
J'imagine que vous devez être énormément sollicité...
je me dirige à nouveau vers vous pour tenter de résoudre mon problème.
j'ai intégré votre version de planning (GestPlan) pour avoir une vision par salle et par jour des occupations.(merci)
Mais depuis le planning principal me joue des tours ...
J'ai bien renommer les variables pour éviter les conflits possible mais rien n'y fait les Rdvs sont bien enregistrés dans la table mais plus d'affichage sur le planning avec des bugs au niveau des requêtes...(chois des horaires par exemples) dans le formulaire RendezVous. je suis certain que la variable "n" est en cause mais je ne peux agir dessus ...
Si vous pouviez jeter un œil et me donner des pistes... les 2 planning s'ouvrent eux sans conflits! le deuxième s’ouvre via un bouton dans le planning principal (planning journalier).
De plus j'ai dissocié les deux modules Planning , je pense qu'il aurai été possible de les fusionner pour que le planning journalier soit le miroir parfait du principale avec les jour fériés et les congés associés ... mais je me suis confronté à des bugs liés aux variables et au noms des champs de Table; est-il possible de gérer 2 forms plannings différents qui ouvrent tous deux le form RDV et se mettent à jours si une modification est effectuée ?
merci d'avance
cordialement,
Laurent
Ps: le fichier ( https://e-nautia.com/share/29177-mqty7r28 )