Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Boucle sans fin

20 réponses
Avatar
Jacques
Bonjour,

Lorsque je cr=E9e un enregistrement dans la table Formation-Activit=E9-
Liste je voudrais rajouter
l=92Id (r=E9fFormationActivit=E9Liste ) ainsi cr=E9=E9 dans la table Format=
ion.

-Les deux tables sont vides le 1er enregistrement se cr=E9e bien dans
les deux tables.
-Le 2=E8me enregistrement aussi.
-Si je reviens sur le 1er enregistrement (avec les m=EAmes valeurs)
j=92obtiens une boucle sans fin.
-Si je reviens sur le 2=E8me enregistrement le code passe en bien par
Edit.

O=F9 se trouve mon erreur ?

Je joins le code, et merci pour votre aide.

Salutations

Private Sub Commande11_Click()
On Error GoTo GestionErreur

Set db =3D CurrentDb()

'--- Int=E9rogation de rsFormaListe
Set rsFormaListe =3D db.OpenRecordset("tbl Formations-Activit=E9s-
Liste", dbOpenDynaset)

'--- Int=E9rogation de rsFormation
Set rsFormation =3D db.OpenRecordset("tbl Formations",
dbOpenDynaset)

'--- Test sur base vide
If rsFormaListe.RecordCount =3D 0 Then
rsFormaListe.AddNew
rsFormaListe("r=E9fActivit=E9Liste") =3D Me.txtR=E9fActivit=E9Lis=
te
rsFormaListe("r=E9fActivit=E9Option") =3D Val(Me.cmbOption)
rsFormaListe("r=E9fFormationListe") =3D Val(Me.cmbFormation)
lngCodeR=E9f =3D rsFormaListe("R=E9fFormationActivit=E9Liste")

rsFormation.AddNew
rsFormation("r=E9fAnimateur") =3D Nz(TxtR=E9fAnimateur.Value, 0)
rsFormation("DatesDu") =3D Nz(txtDateDu.Value)
rsFormation("DatesAu") =3D Nz(txtDateAu.Value)
rsFormation("r=E9fFormationActivit=E9Liste") =3D lngCodeR=E9f
rsFormation.Update
rsFormaListe.Update
End If

'--- Boucle sur la table rsFormaliste
Do While Not rsFormaListe.EOF

'--- Recherche si l'enregistrement est trouv=E9
rsFormaListe.FindFirst "[R=E9fActivit=E9Liste]=3D" & Val
(Me.txtR=E9fActivit=E9Liste) & " And " & _
"[R=E9fActivit=E9Option]=3D" & Val
(Me.cmbOption) & " And " & _
"[R=E9fFormationListe]=3D" & Val
(Me.cmbFormation)

'--- Test sur NoMatch
If rsFormaListe.NoMatch Then
rsFormaListe.AddNew
rsFormaListe("r=E9fActivit=E9Liste") =3D Me.txtR=E9fActivit=E9Lis=
te
rsFormaListe("r=E9fActivit=E9Option") =3D Val(Me.cmbOption)
rsFormaListe("r=E9fFormationListe") =3D Val(Me.cmbFormation)
lngCodeR=E9f =3D rsFormaListe("R=E9fFormationActivit=E9Liste")
Else

'--- Trouv=E9 NoMatch vaut True on met =E0 jours
rsFormaListe.Edit
End If
rsFormaListe("r=E9fActivit=E9Liste") =3D Me.txtR=E9fActivit=E9Lis=
te
rsFormaListe("r=E9fActivit=E9Option") =3D Val(Me.cmbOption)
rsFormaListe("r=E9fFormationListe") =3D Val(Me.cmbFormation)
lngCodeR=E9f =3D rsFormaListe("R=E9fFormationActivit=E9Liste")
rsFormaListe.Update

'--- Maj et Ajout dans la tbl rsFormation

'--- Recherche si l'enregistrement est trouv=E9
rsFormation.FindFirst "[R=E9fFormationActivit=E9Liste]=3D" &
rsFormaListe![R=E9fFormationActivit=E9Liste]

'--- Non trouv=E9 NoMatch vaut False on ajoute
If rsFormation.NoMatch Then
rsFormation.AddNew
rsFormation("r=E9fAnimateur") =3D Nz(TxtR=E9fAnimateur.Value, 0)
rsFormation("r=E9fFormationActivit=E9Liste") =3D lngCodeR=E9f
Else

'--- Trouv=E9 NoMatch vaut True on met =E0 jours
rsFormation.Edit
End If
rsFormation("r=E9fAnimateur") =3D Nz(TxtR=E9fAnimateur.Value, 0)
rsFormation("DatesDu") =3D Nz(txtDateDu.Value)
rsFormation("DatesAu") =3D Nz(txtDateAu.Value)
rsFormation.Update
rsFormaListe.MoveNext
Loop

'--- M=E0j du sous formulaire
Forms![frm M=E0j Formations]![frm M=E0j Formations-sfm].Requery

'--- Ferme les objet
rsFormaListe.Close: Set rsFormaListe =3D Nothing
rsFormation.Close: Set rsFormation =3D Nothing
db.Close: Set db =3D Nothing

GestionErreur:

End Sub

10 réponses

1 2
Avatar
Michel__D
Bonjour,

Quelle est le sens de la relation entre les deux tables ?

PS:J'ai l'impression que tu réalise l'opération dans l'ordre inverse.

Jacques a écrit :
Bonjour,

Lorsque je crée un enregistrement dans la table Formation-Activité-
Liste je voudrais rajouter
l’Id (réfFormationActivitéListe ) ainsi créé dans la table Formation.

-Les deux tables sont vides le 1er enregistrement se crée bien dans
les deux tables.
-Le 2ème enregistrement aussi.
-Si je reviens sur le 1er enregistrement (avec les mêmes valeurs)
j’obtiens une boucle sans fin.
-Si je reviens sur le 2ème enregistrement le code passe en bien par
Edit.

Où se trouve mon erreur ?

Je joins le code, et merci pour votre aide.

Salutations

Private Sub Commande11_Click()
On Error GoTo GestionErreur

Set db = CurrentDb()

'--- Intérogation de rsFormaListe
Set rsFormaListe = db.OpenRecordset("tbl Formations-Activités-
Liste", dbOpenDynaset)

'--- Intérogation de rsFormation
Set rsFormation = db.OpenRecordset("tbl Formations",
dbOpenDynaset)

'--- Test sur base vide
If rsFormaListe.RecordCount = 0 Then
rsFormaListe.AddNew
rsFormaListe("réfActivitéListe") = Me.txtRéfActivitéListe
rsFormaListe("réfActivitéOption") = Val(Me.cmbOption)
rsFormaListe("réfFormationListe") = Val(Me.cmbFormation)
lngCodeRéf = rsFormaListe("RéfFormationActivitéListe")

rsFormation.AddNew
rsFormation("réfAnimateur") = Nz(TxtRéfAnimateur.Value, 0)
rsFormation("DatesDu") = Nz(txtDateDu.Value)
rsFormation("DatesAu") = Nz(txtDateAu.Value)
rsFormation("réfFormationActivitéListe") = lngCodeRéf
rsFormation.Update
rsFormaListe.Update
End If

'--- Boucle sur la table rsFormaliste
Do While Not rsFormaListe.EOF

'--- Recherche si l'enregistrement est trouvé
rsFormaListe.FindFirst "[RéfActivitéListe]=" & Val
(Me.txtRéfActivitéListe) & " And " & _
"[RéfActivitéOption]=" & Val
(Me.cmbOption) & " And " & _
"[RéfFormationListe]=" & Val
(Me.cmbFormation)

'--- Test sur NoMatch
If rsFormaListe.NoMatch Then
rsFormaListe.AddNew
rsFormaListe("réfActivitéListe") = Me.txtRéfActivitéListe
rsFormaListe("réfActivitéOption") = Val(Me.cmbOption)
rsFormaListe("réfFormationListe") = Val(Me.cmbFormation)
lngCodeRéf = rsFormaListe("RéfFormationActivitéListe")
Else

'--- Trouvé NoMatch vaut True on met à jours
rsFormaListe.Edit
End If
rsFormaListe("réfActivitéListe") = Me.txtRéfActivitéListe
rsFormaListe("réfActivitéOption") = Val(Me.cmbOption)
rsFormaListe("réfFormationListe") = Val(Me.cmbFormation)
lngCodeRéf = rsFormaListe("RéfFormationActivitéListe")
rsFormaListe.Update

'--- Maj et Ajout dans la tbl rsFormation

'--- Recherche si l'enregistrement est trouvé
rsFormation.FindFirst "[RéfFormationActivitéListe]=" &
rsFormaListe![RéfFormationActivitéListe]

'--- Non trouvé NoMatch vaut False on ajoute
If rsFormation.NoMatch Then
rsFormation.AddNew
rsFormation("réfAnimateur") = Nz(TxtRéfAnimateur.Value, 0)
rsFormation("réfFormationActivitéListe") = lngCodeRéf
Else

'--- Trouvé NoMatch vaut True on met à jours
rsFormation.Edit
End If
rsFormation("réfAnimateur") = Nz(TxtRéfAnimateur.Value, 0)
rsFormation("DatesDu") = Nz(txtDateDu.Value)
rsFormation("DatesAu") = Nz(txtDateAu.Value)
rsFormation.Update
rsFormaListe.MoveNext
Loop

'--- Màj du sous formulaire
Forms![frm Màj Formations]![frm Màj Formations-sfm].Requery

'--- Ferme les objet
rsFormaListe.Close: Set rsFormaListe = Nothing
rsFormation.Close: Set rsFormation = Nothing
db.Close: Set db = Nothing

GestionErreur:

End Sub


Avatar
Jacques
On 19 déc, 12:20, Michel__D
wrote:
Bonjour,

Quelle est le sens de la relation entre les deux tables ?

PS:J'ai l'impression que tu réalise l'opération dans l'ordre inverse.

Jacques a écrit :



> Bonjour,

> Lorsque je crée un enregistrement dans la  table Formation-Activit é-
> Liste je voudrais rajouter
> l’Id (réfFormationActivitéListe ) ainsi créé dans la table Fo rmation.

> -Les deux tables sont vides le 1er enregistrement se crée bien dans
> les deux tables.
> -Le 2ème enregistrement aussi.
> -Si je reviens sur le 1er enregistrement (avec les mêmes valeurs)
> j’obtiens une boucle sans fin.
> -Si je reviens sur le 2ème enregistrement le code passe en bien par
> Edit.

> Où se trouve mon erreur ?

> Je joins le code, et merci pour votre aide.

> Salutations

> Private Sub Commande11_Click()
> On Error GoTo GestionErreur

>      Set db = CurrentDb()

> '--- Intérogation de rsFormaListe
>      Set rsFormaListe = db.OpenRecordset("tbl Formations-Activi tés-
> Liste", dbOpenDynaset)

> '--- Intérogation de rsFormation
>      Set rsFormation = db.OpenRecordset("tbl Formations",
> dbOpenDynaset)

> '--- Test sur base vide
>      If rsFormaListe.RecordCount = 0 Then
>         rsFormaListe.AddNew
>           rsFormaListe("réfActivitéListe") = Me.txtRé fActivitéListe
>           rsFormaListe("réfActivitéOption") = Val(Me.cm bOption)
>           rsFormaListe("réfFormationListe") = Val(Me.cmbF ormation)
>           lngCodeRéf = rsFormaListe("RéfFormationActivi téListe")

>         rsFormation.AddNew
>           rsFormation("réfAnimateur") = Nz(TxtRéfAnimat eur.Value, 0)
>           rsFormation("DatesDu") = Nz(txtDateDu.Value)
>           rsFormation("DatesAu") = Nz(txtDateAu.Value)
>           rsFormation("réfFormationActivitéListe") = ln gCodeRéf
>           rsFormation.Update
>         rsFormaListe.Update
>      End If

> '--- Boucle sur la table rsFormaliste
>      Do While Not rsFormaListe.EOF

> '--- Recherche si l'enregistrement est trouvé
>      rsFormaListe.FindFirst "[RéfActivitéListe]=" & Val
> (Me.txtRéfActivitéListe) & " And " & _
>                              "[RéfActiv itéOption]=" & Val
> (Me.cmbOption) & " And " & _
>                               "[RéfForm ationListe]=" & Val
> (Me.cmbFormation)

> '--- Test sur NoMatch
>      If rsFormaListe.NoMatch Then
>         rsFormaListe.AddNew
>           rsFormaListe("réfActivitéListe") = Me.txtRé fActivitéListe
>           rsFormaListe("réfActivitéOption") = Val(Me.cm bOption)
>           rsFormaListe("réfFormationListe") = Val(Me.cmbF ormation)
>           lngCodeRéf = rsFormaListe("RéfFormationActivi téListe")
>       Else

>  '--- Trouvé NoMatch vaut True on met à jours
>         rsFormaListe.Edit
>       End If
>           rsFormaListe("réfActivitéListe") = Me.txtRé fActivitéListe
>           rsFormaListe("réfActivitéOption") = Val(Me.cm bOption)
>           rsFormaListe("réfFormationListe") = Val(Me.cmbF ormation)
>           lngCodeRéf = rsFormaListe("RéfFormationActivi téListe")
>         rsFormaListe.Update

> '--- Maj et Ajout dans la tbl rsFormation

> '--- Recherche si l'enregistrement est trouvé
>      rsFormation.FindFirst "[RéfFormationActivitéListe]=" &
> rsFormaListe![RéfFormationActivitéListe]

> '--- Non trouvé NoMatch vaut False on ajoute
>      If rsFormation.NoMatch Then
>           rsFormation.AddNew
>           rsFormation("réfAnimateur") = Nz(TxtRéfAnimat eur.Value, 0)
>           rsFormation("réfFormationActivitéListe") = ln gCodeRéf
>      Else

> '--- Trouvé NoMatch vaut True on met à jours
>         rsFormation.Edit
>      End If
>          rsFormation("réfAnimateur") = Nz(TxtRéfAnimate ur.Value, 0)
>          rsFormation("DatesDu") = Nz(txtDateDu.Value)
>          rsFormation("DatesAu") = Nz(txtDateAu.Value)
>       rsFormation.Update
>       rsFormaListe.MoveNext
>      Loop

> '--- Màj du sous formulaire
>      Forms![frm Màj Formations]![frm Màj Formations-sfm].Requ ery

> '--- Ferme les objet
>      rsFormaListe.Close: Set rsFormaListe = Nothing
>      rsFormation.Close: Set rsFormation = Nothing
>      db.Close: Set db = Nothing

> GestionErreur:

> End Sub- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonjour Michel_D

Voici la relation des tables :

Tbl Formations
RéfRelation
RéfAnimateur
RéfFormationActivitéListe-8-----------1-RéfFormationActivitéListe d e
la table Formations-Activité-Liste

Salutations
Avatar
Michel__D
Re,

Jacques a écrit :
On 19 déc, 12:20, Michel__D
wrote:
Bonjour,

Quelle est le sens de la relation entre les deux tables ?

PS:J'ai l'impression que tu réalise l'opération dans l'ordre inverse.

Jacques a écrit :



Bonjour,
Lorsque je crée un enregistrement dans la table Formation-Activité-
Liste je voudrais rajouter
l’Id (réfFormationActivitéListe ) ainsi créé dans la table Formation.
-Les deux tables sont vides le 1er enregistrement se crée bien dans
les deux tables.
-Le 2ème enregistrement aussi.
-Si je reviens sur le 1er enregistrement (avec les mêmes valeurs)
j’obtiens une boucle sans fin.
-Si je reviens sur le 2ème enregistrement le code passe en bien par
Edit.
Où se trouve mon erreur ?
Je joins le code, et merci pour votre aide.
Salutations
Private Sub Commande11_Click()
On Error GoTo GestionErreur
Set db = CurrentDb()
'--- Intérogation de rsFormaListe
Set rsFormaListe = db.OpenRecordset("tbl Formations-Activités-
Liste", dbOpenDynaset)
'--- Intérogation de rsFormation
Set rsFormation = db.OpenRecordset("tbl Formations",
dbOpenDynaset)
'--- Test sur base vide
If rsFormaListe.RecordCount = 0 Then
rsFormaListe.AddNew
rsFormaListe("réfActivitéListe") = Me.txtRéfActivitéListe
rsFormaListe("réfActivitéOption") = Val(Me.cmbOption)
rsFormaListe("réfFormationListe") = Val(Me.cmbFormation)
lngCodeRéf = rsFormaListe("RéfFormationActivitéListe")
rsFormation.AddNew
rsFormation("réfAnimateur") = Nz(TxtRéfAnimateur.Value, 0)
rsFormation("DatesDu") = Nz(txtDateDu.Value)
rsFormation("DatesAu") = Nz(txtDateAu.Value)
rsFormation("réfFormationActivitéListe") = lngCodeRéf
rsFormation.Update
rsFormaListe.Update
End If
'--- Boucle sur la table rsFormaliste
Do While Not rsFormaListe.EOF
'--- Recherche si l'enregistrement est trouvé
rsFormaListe.FindFirst "[RéfActivitéListe]=" & Val
(Me.txtRéfActivitéListe) & " And " & _
"[RéfActivitéOption]=" & Val
(Me.cmbOption) & " And " & _
"[RéfFormationListe]=" & Val
(Me.cmbFormation)
'--- Test sur NoMatch
If rsFormaListe.NoMatch Then
rsFormaListe.AddNew
rsFormaListe("réfActivitéListe") = Me.txtRéfActivitéListe
rsFormaListe("réfActivitéOption") = Val(Me.cmbOption)
rsFormaListe("réfFormationListe") = Val(Me.cmbFormation)
lngCodeRéf = rsFormaListe("RéfFormationActivitéListe")
Else
'--- Trouvé NoMatch vaut True on met à jours
rsFormaListe.Edit
End If
rsFormaListe("réfActivitéListe") = Me.txtRéfActivitéListe
rsFormaListe("réfActivitéOption") = Val(Me.cmbOption)
rsFormaListe("réfFormationListe") = Val(Me.cmbFormation)
lngCodeRéf = rsFormaListe("RéfFormationActivitéListe")
rsFormaListe.Update
'--- Maj et Ajout dans la tbl rsFormation
'--- Recherche si l'enregistrement est trouvé
rsFormation.FindFirst "[RéfFormationActivitéListe]=" &
rsFormaListe![RéfFormationActivitéListe]
'--- Non trouvé NoMatch vaut False on ajoute
If rsFormation.NoMatch Then
rsFormation.AddNew
rsFormation("réfAnimateur") = Nz(TxtRéfAnimateur.Value, 0)
rsFormation("réfFormationActivitéListe") = lngCodeRéf
Else
'--- Trouvé NoMatch vaut True on met à jours
rsFormation.Edit
End If
rsFormation("réfAnimateur") = Nz(TxtRéfAnimateur.Value, 0)
rsFormation("DatesDu") = Nz(txtDateDu.Value)
rsFormation("DatesAu") = Nz(txtDateAu.Value)
rsFormation.Update
rsFormaListe.MoveNext
Loop
'--- Màj du sous formulaire
Forms![frm Màj Formations]![frm Màj Formations-sfm].Requery
'--- Ferme les objet
rsFormaListe.Close: Set rsFormaListe = Nothing
rsFormation.Close: Set rsFormation = Nothing
db.Close: Set db = Nothing
GestionErreur:
End Sub- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Bonjour Michel_D

Voici la relation des tables :

Tbl Formations
RéfRelation
RéfAnimateur
RéfFormationActivitéListe-8-----------1-RéfFormationActivitéListe de
la table Formations-Activité-Liste

Salutations



Je pense qu'il faut mettre à jour ta table [RéfFormationActivitéListe] avant
de récupérer la référence à [txtRéfActivitéListe] que tu viens d'ajouter.

PS:Le code pour "Test sur base vide" ne sert à rien.
Avatar
Jacques
On 19 déc, 14:26, Michel__D
wrote:
Re,

Jacques a écrit :





> On 19 déc, 12:20, Michel__D
> wrote:
>> Bonjour,

>> Quelle est le sens de la relation entre les deux tables ?

>> PS:J'ai l'impression que tu réalise l'opération dans l'ordre inver se.

>> Jacques a écrit :

>>> Bonjour,
>>> Lorsque je crée un enregistrement dans la  table Formation-Activi té-
>>> Liste je voudrais rajouter
>>> l’Id (réfFormationActivitéListe ) ainsi créé dans la table Formation.
>>> -Les deux tables sont vides le 1er enregistrement se crée bien dans
>>> les deux tables.
>>> -Le 2ème enregistrement aussi.
>>> -Si je reviens sur le 1er enregistrement (avec les mêmes valeurs)
>>> j’obtiens une boucle sans fin.
>>> -Si je reviens sur le 2ème enregistrement le code passe en bien par
>>> Edit.
>>> Où se trouve mon erreur ?
>>> Je joins le code, et merci pour votre aide.
>>> Salutations
>>> Private Sub Commande11_Click()
>>> On Error GoTo GestionErreur
>>>      Set db = CurrentDb()
>>> '--- Intérogation de rsFormaListe
>>>      Set rsFormaListe = db.OpenRecordset("tbl Formations-Acti vités-
>>> Liste", dbOpenDynaset)
>>> '--- Intérogation de rsFormation
>>>      Set rsFormation = db.OpenRecordset("tbl Formations",
>>> dbOpenDynaset)
>>> '--- Test sur base vide
>>>      If rsFormaListe.RecordCount = 0 Then
>>>         rsFormaListe.AddNew
>>>           rsFormaListe("réfActivitéListe") = Me.txtR éfActivitéListe
>>>           rsFormaListe("réfActivitéOption") = Val(Me. cmbOption)
>>>           rsFormaListe("réfFormationListe") = Val(Me.cm bFormation)
>>>           lngCodeRéf = rsFormaListe("RéfFormationActi vitéListe")
>>>         rsFormation.AddNew
>>>           rsFormation("réfAnimateur") = Nz(TxtRéfAnim ateur.Value, 0)
>>>           rsFormation("DatesDu") = Nz(txtDateDu.Value)
>>>           rsFormation("DatesAu") = Nz(txtDateAu.Value)
>>>           rsFormation("réfFormationActivitéListe") = lngCodeRéf
>>>           rsFormation.Update
>>>         rsFormaListe.Update
>>>      End If
>>> '--- Boucle sur la table rsFormaliste
>>>      Do While Not rsFormaListe.EOF
>>> '--- Recherche si l'enregistrement est trouvé
>>>      rsFormaListe.FindFirst "[RéfActivitéListe]=" & Val
>>> (Me.txtRéfActivitéListe) & " And " & _
>>>                              "[RéfAct ivitéOption]=" & Val
>>> (Me.cmbOption) & " And " & _
>>>                               "[RéfFo rmationListe]=" & Val
>>> (Me.cmbFormation)
>>> '--- Test sur NoMatch
>>>      If rsFormaListe.NoMatch Then
>>>         rsFormaListe.AddNew
>>>           rsFormaListe("réfActivitéListe") = Me.txtR éfActivitéListe
>>>           rsFormaListe("réfActivitéOption") = Val(Me. cmbOption)
>>>           rsFormaListe("réfFormationListe") = Val(Me.cm bFormation)
>>>           lngCodeRéf = rsFormaListe("RéfFormationActi vitéListe")
>>>       Else
>>>  '--- Trouvé NoMatch vaut True on met à jours
>>>         rsFormaListe.Edit
>>>       End If
>>>           rsFormaListe("réfActivitéListe") = Me.txtR éfActivitéListe
>>>           rsFormaListe("réfActivitéOption") = Val(Me. cmbOption)
>>>           rsFormaListe("réfFormationListe") = Val(Me.cm bFormation)
>>>           lngCodeRéf = rsFormaListe("RéfFormationActi vitéListe")
>>>         rsFormaListe.Update
>>> '--- Maj et Ajout dans la tbl rsFormation
>>> '--- Recherche si l'enregistrement est trouvé
>>>      rsFormation.FindFirst "[RéfFormationActivitéListe]=" &
>>> rsFormaListe![RéfFormationActivitéListe]
>>> '--- Non trouvé NoMatch vaut False on ajoute
>>>      If rsFormation.NoMatch Then
>>>           rsFormation.AddNew
>>>           rsFormation("réfAnimateur") = Nz(TxtRéfAnim ateur.Value, 0)
>>>           rsFormation("réfFormationActivitéListe") = lngCodeRéf
>>>      Else
>>> '--- Trouvé NoMatch vaut True on met à jours
>>>         rsFormation.Edit
>>>      End If
>>>          rsFormation("réfAnimateur") = Nz(TxtRéfAnima teur.Value, 0)
>>>          rsFormation("DatesDu") = Nz(txtDateDu.Value)
>>>          rsFormation("DatesAu") = Nz(txtDateAu.Value)
>>>       rsFormation.Update
>>>       rsFormaListe.MoveNext
>>>      Loop
>>> '--- Màj du sous formulaire
>>>      Forms![frm Màj Formations]![frm Màj Formations-sfm].Re query
>>> '--- Ferme les objet
>>>      rsFormaListe.Close: Set rsFormaListe = Nothing
>>>      rsFormation.Close: Set rsFormation = Nothing
>>>      db.Close: Set db = Nothing
>>> GestionErreur:
>>> End Sub- Masquer le texte des messages précédents -
>> - Afficher le texte des messages précédents -

> Bonjour Michel_D

> Voici la relation des tables :

> Tbl Formations
> RéfRelation
> RéfAnimateur
> RéfFormationActivitéListe-8-----------1-RéfFormationActivitéLis te de
> la table Formations-Activité-Liste

> Salutations

Je pense qu'il faut mettre à jour ta table [RéfFormationActivitéLis te] avant
  de récupérer la référence à [txtRéfActivitéListe] que t u viens d'ajouter.

PS:Le code pour "Test sur base vide" ne sert à rien.- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Salutations

Bonjour Michel_D

J’ai supprimé le test sur les tables vides, mais je ne peux pas créer
le 1er enregistrement.

De même je n’ai pas pu régler le problème de la boucle.

Ci-joint une base allégée.

http://cjoint.com/?mukVkLO1mb
Salutations
Avatar
Michel__D
Bonjour,

Jacques a écrit :
On 19 déc, 14:26, Michel__D
wrote:
Re,

Jacques a écrit :





On 19 déc, 12:20, Michel__D
wrote:
Bonjour,
Quelle est le sens de la relation entre les deux tables ?
PS:J'ai l'impression que tu réalise l'opération dans l'ordre inverse.
Jacques a écrit :
Bonjour,
Lorsque je crée un enregistrement dans la table Formation-Activité-
Liste je voudrais rajouter
l’Id (réfFormationActivitéListe ) ainsi créé dans la table Formation.
-Les deux tables sont vides le 1er enregistrement se crée bien dans
les deux tables.
-Le 2ème enregistrement aussi.
-Si je reviens sur le 1er enregistrement (avec les mêmes valeurs)
j’obtiens une boucle sans fin.
-Si je reviens sur le 2ème enregistrement le code passe en bien par
Edit.
Où se trouve mon erreur ?
Je joins le code, et merci pour votre aide.
Salutations
Private Sub Commande11_Click()
On Error GoTo GestionErreur
Set db = CurrentDb()
'--- Intérogation de rsFormaListe
Set rsFormaListe = db.OpenRecordset("tbl Formations-Activités-
Liste", dbOpenDynaset)
'--- Intérogation de rsFormation
Set rsFormation = db.OpenRecordset("tbl Formations",
dbOpenDynaset)
'--- Test sur base vide
If rsFormaListe.RecordCount = 0 Then
rsFormaListe.AddNew
rsFormaListe("réfActivitéListe") = Me.txtRéfActivitéListe
rsFormaListe("réfActivitéOption") = Val(Me.cmbOption)
rsFormaListe("réfFormationListe") = Val(Me.cmbFormation)
lngCodeRéf = rsFormaListe("RéfFormationActivitéListe")
rsFormation.AddNew
rsFormation("réfAnimateur") = Nz(TxtRéfAnimateur.Value, 0)
rsFormation("DatesDu") = Nz(txtDateDu.Value)
rsFormation("DatesAu") = Nz(txtDateAu.Value)
rsFormation("réfFormationActivitéListe") = lngCodeRéf
rsFormation.Update
rsFormaListe.Update
End If
'--- Boucle sur la table rsFormaliste
Do While Not rsFormaListe.EOF
'--- Recherche si l'enregistrement est trouvé
rsFormaListe.FindFirst "[RéfActivitéListe]=" & Val
(Me.txtRéfActivitéListe) & " And " & _
"[RéfActivitéOption]=" & Val
(Me.cmbOption) & " And " & _
"[RéfFormationListe]=" & Val
(Me.cmbFormation)
'--- Test sur NoMatch
If rsFormaListe.NoMatch Then
rsFormaListe.AddNew
rsFormaListe("réfActivitéListe") = Me.txtRéfActivitéListe
rsFormaListe("réfActivitéOption") = Val(Me.cmbOption)
rsFormaListe("réfFormationListe") = Val(Me.cmbFormation)
lngCodeRéf = rsFormaListe("RéfFormationActivitéListe")
Else
'--- Trouvé NoMatch vaut True on met à jours
rsFormaListe.Edit
End If
rsFormaListe("réfActivitéListe") = Me.txtRéfActivitéListe
rsFormaListe("réfActivitéOption") = Val(Me.cmbOption)
rsFormaListe("réfFormationListe") = Val(Me.cmbFormation)
lngCodeRéf = rsFormaListe("RéfFormationActivitéListe")
rsFormaListe.Update
'--- Maj et Ajout dans la tbl rsFormation
'--- Recherche si l'enregistrement est trouvé
rsFormation.FindFirst "[RéfFormationActivitéListe]=" &
rsFormaListe![RéfFormationActivitéListe]
'--- Non trouvé NoMatch vaut False on ajoute
If rsFormation.NoMatch Then
rsFormation.AddNew
rsFormation("réfAnimateur") = Nz(TxtRéfAnimateur.Value, 0)
rsFormation("réfFormationActivitéListe") = lngCodeRéf
Else
'--- Trouvé NoMatch vaut True on met à jours
rsFormation.Edit
End If
rsFormation("réfAnimateur") = Nz(TxtRéfAnimateur.Value, 0)
rsFormation("DatesDu") = Nz(txtDateDu.Value)
rsFormation("DatesAu") = Nz(txtDateAu.Value)
rsFormation.Update
rsFormaListe.MoveNext
Loop
'--- Màj du sous formulaire
Forms![frm Màj Formations]![frm Màj Formations-sfm].Requery
'--- Ferme les objet
rsFormaListe.Close: Set rsFormaListe = Nothing
rsFormation.Close: Set rsFormation = Nothing
db.Close: Set db = Nothing
GestionErreur:
End Sub- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


Bonjour Michel_D
Voici la relation des tables :
Tbl Formations
RéfRelation
RéfAnimateur
RéfFormationActivitéListe-8-----------1-RéfFormationActivitéListe de
la table Formations-Activité-Liste
Salutations


Je pense qu'il faut mettre à jour ta table [RéfFormationActivitéListe] avant
de récupérer la référence à [txtRéfActivitéListe] que tu viens d'ajouter.

PS:Le code pour "Test sur base vide" ne sert à rien.- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Salutations

Bonjour Michel_D

J’ai supprimé le test sur les tables vides, mais je ne peux pas créer
le 1er enregistrement.

De même je n’ai pas pu régler le problème de la boucle.

Ci-joint une base allégée.

http://cjoint.com/?mukVkLO1mb
Salutations



J'ai regardé ta base et comme j'ai pas tout compris, il me faudrait quelques
explications par rapport à ton schéma de relations, j'ai entouré dans l'image
(voir le lien) ce que je ne comprends pas et qui je pense est le noeud du problème.

D'aprés ce que j'ai compris tu veux assurer un suivi de formation dirigé
par des animateurs qui possèdent des activités personnelles.

Ce que je ne comprends pas :
Quelles sont les relations entre les formations et les activitées ?
(A cause de [RéfFormationActivitéListe] dans la table [tbl Formations])

http://cjoint.com/?musRXGwakJ
Avatar
Michel__D
Re,

Michel__D a écrit :
Bonjour,

Jacques a écrit :
On 19 déc, 14:26, Michel__D
wrote:
Re,

Jacques a écrit :





On 19 déc, 12:20, Michel__D
wrote:
Bonjour,
Quelle est le sens de la relation entre les deux tables ?
PS:J'ai l'impression que tu réalise l'opération dans l'ordre inverse.
Jacques a écrit :
Bonjour,
Lorsque je crée un enregistrement dans la table Formation-Activité-
Liste je voudrais rajouter
l’Id (réfFormationActivitéListe ) ainsi créé dans la table Formation.
-Les deux tables sont vides le 1er enregistrement se crée bien dans
les deux tables.
-Le 2ème enregistrement aussi.
-Si je reviens sur le 1er enregistrement (avec les mêmes valeurs)
j’obtiens une boucle sans fin.
-Si je reviens sur le 2ème enregistrement le code passe en bien par
Edit.
Où se trouve mon erreur ?
Je joins le code, et merci pour votre aide.
Salutations
Private Sub Commande11_Click()
On Error GoTo GestionErreur
Set db = CurrentDb()
'--- Intérogation de rsFormaListe
Set rsFormaListe = db.OpenRecordset("tbl Formations-Activités-
Liste", dbOpenDynaset)
'--- Intérogation de rsFormation
Set rsFormation = db.OpenRecordset("tbl Formations",
dbOpenDynaset)
'--- Test sur base vide
If rsFormaListe.RecordCount = 0 Then
rsFormaListe.AddNew
rsFormaListe("réfActivitéListe") = Me.txtRéfActivitéListe
rsFormaListe("réfActivitéOption") = Val(Me.cmbOption)
rsFormaListe("réfFormationListe") = Val(Me.cmbFormation)
lngCodeRéf = rsFormaListe("RéfFormationActivitéListe")
rsFormation.AddNew
rsFormation("réfAnimateur") = Nz(TxtRéfAnimateur.Value, 0)
rsFormation("DatesDu") = Nz(txtDateDu.Value)
rsFormation("DatesAu") = Nz(txtDateAu.Value)
rsFormation("réfFormationActivitéListe") = lngCodeRéf
rsFormation.Update
rsFormaListe.Update
End If
'--- Boucle sur la table rsFormaliste
Do While Not rsFormaListe.EOF
'--- Recherche si l'enregistrement est trouvé
rsFormaListe.FindFirst "[RéfActivitéListe]=" & Val
(Me.txtRéfActivitéListe) & " And " & _
"[RéfActivitéOption]=" & Val
(Me.cmbOption) & " And " & _
"[RéfFormationListe]=" & Val
(Me.cmbFormation)
'--- Test sur NoMatch
If rsFormaListe.NoMatch Then
rsFormaListe.AddNew
rsFormaListe("réfActivitéListe") = Me.txtRéfActivitéListe
rsFormaListe("réfActivitéOption") = Val(Me.cmbOption)
rsFormaListe("réfFormationListe") = Val(Me.cmbFormation)
lngCodeRéf = rsFormaListe("RéfFormationActivitéListe")
Else
'--- Trouvé NoMatch vaut True on met à jours
rsFormaListe.Edit
End If
rsFormaListe("réfActivitéListe") = Me.txtRéfActivitéListe
rsFormaListe("réfActivitéOption") = Val(Me.cmbOption)
rsFormaListe("réfFormationListe") = Val(Me.cmbFormation)
lngCodeRéf = rsFormaListe("RéfFormationActivitéListe")
rsFormaListe.Update
'--- Maj et Ajout dans la tbl rsFormation
'--- Recherche si l'enregistrement est trouvé
rsFormation.FindFirst "[RéfFormationActivitéListe]=" &
rsFormaListe![RéfFormationActivitéListe]
'--- Non trouvé NoMatch vaut False on ajoute
If rsFormation.NoMatch Then
rsFormation.AddNew
rsFormation("réfAnimateur") = Nz(TxtRéfAnimateur.Value, 0)
rsFormation("réfFormationActivitéListe") = lngCodeRéf
Else
'--- Trouvé NoMatch vaut True on met à jours
rsFormation.Edit
End If
rsFormation("réfAnimateur") = Nz(TxtRéfAnimateur.Value, 0)
rsFormation("DatesDu") = Nz(txtDateDu.Value)
rsFormation("DatesAu") = Nz(txtDateAu.Value)
rsFormation.Update
rsFormaListe.MoveNext
Loop
'--- Màj du sous formulaire
Forms![frm Màj Formations]![frm Màj Formations-sfm].Requery
'--- Ferme les objet
rsFormaListe.Close: Set rsFormaListe = Nothing
rsFormation.Close: Set rsFormation = Nothing
db.Close: Set db = Nothing
GestionErreur:
End Sub- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


Bonjour Michel_D
Voici la relation des tables :
Tbl Formations
RéfRelation
RéfAnimateur
RéfFormationActivitéListe-8-----------1-RéfFormationActivitéListe de
la table Formations-Activité-Liste
Salutations


Je pense qu'il faut mettre à jour ta table
[RéfFormationActivitéListe] avant
de récupérer la référence à [txtRéfActivitéListe] que tu viens
d'ajouter.

PS:Le code pour "Test sur base vide" ne sert à rien.- Masquer le
texte des messages précédents -

- Afficher le texte des messages précédents -



Salutations

Bonjour Michel_D

J’ai supprimé le test sur les tables vides, mais je ne peux pas créer
le 1er enregistrement.

De même je n’ai pas pu régler le problème de la boucle.

Ci-joint une base allégée.

http://cjoint.com/?mukVkLO1mb
Salutations



J'ai regardé ta base et comme j'ai pas tout compris, il me faudrait
quelques
explications par rapport à ton schéma de relations, j'ai entouré dans
l'image
(voir le lien) ce que je ne comprends pas et qui je pense est le noeud
du problème.

D'aprés ce que j'ai compris tu veux assurer un suivi de formation dirigé
par des animateurs qui possèdent des activités personnelles.

Ce que je ne comprends pas :
Quelles sont les relations entre les formations et les activitées ?
(A cause de [RéfFormationActivitéListe] dans la table [tbl Formations])

http://cjoint.com/?musRXGwakJ



Tiens il y a eu un problème lors de la création du lien, 2ème tentative.

http://cjoint.com/?mus0Ge8N3t
Avatar
Jacques
On 20 déc, 18:53, Michel__D
wrote:
Re,

Michel__D a écrit :





> Bonjour,

> Jacques a écrit :
>> On 19 déc, 14:26, Michel__D
>> wrote:
>>> Re,

>>> Jacques a écrit :

>>>> On 19 déc, 12:20, Michel__D
>>>> wrote:
>>>>> Bonjour,
>>>>> Quelle est le sens de la relation entre les deux tables ?
>>>>> PS:J'ai l'impression que tu réalise l'opération dans l'ordre in verse.
>>>>> Jacques a écrit :
>>>>>> Bonjour,
>>>>>> Lorsque je crée un enregistrement dans la  table Formation-Act ivité-
>>>>>> Liste je voudrais rajouter
>>>>>> l’Id (réfFormationActivitéListe ) ainsi créé dans la tab le Formation.
>>>>>> -Les deux tables sont vides le 1er enregistrement se crée bien d ans
>>>>>> les deux tables.
>>>>>> -Le 2ème enregistrement aussi.
>>>>>> -Si je reviens sur le 1er enregistrement (avec les mêmes valeurs )
>>>>>> j’obtiens une boucle sans fin.
>>>>>> -Si je reviens sur le 2ème enregistrement le code passe en bien par
>>>>>> Edit.
>>>>>> Où se trouve mon erreur ?
>>>>>> Je joins le code, et merci pour votre aide.
>>>>>> Salutations
>>>>>> Private Sub Commande11_Click()
>>>>>> On Error GoTo GestionErreur
>>>>>>      Set db = CurrentDb()
>>>>>> '--- Intérogation de rsFormaListe
>>>>>>      Set rsFormaListe = db.OpenRecordset("tbl Formations-A ctivités-
>>>>>> Liste", dbOpenDynaset)
>>>>>> '--- Intérogation de rsFormation
>>>>>>      Set rsFormation = db.OpenRecordset("tbl Formations",
>>>>>> dbOpenDynaset)
>>>>>> '--- Test sur base vide
>>>>>>      If rsFormaListe.RecordCount = 0 Then
>>>>>>         rsFormaListe.AddNew
>>>>>>           rsFormaListe("réfActivitéListe") = Me.tx tRéfActivitéListe
>>>>>>           rsFormaListe("réfActivitéOption") = Val( Me.cmbOption)
>>>>>>           rsFormaListe("réfFormationListe") = Val(Me .cmbFormation)
>>>>>>           lngCodeRéf = rsFormaListe("RéfFormationA ctivitéListe")
>>>>>>         rsFormation.AddNew
>>>>>>           rsFormation("réfAnimateur") = Nz(TxtRéfA nimateur.Value, 0)
>>>>>>           rsFormation("DatesDu") = Nz(txtDateDu.Value)
>>>>>>           rsFormation("DatesAu") = Nz(txtDateAu.Value)
>>>>>>           rsFormation("réfFormationActivitéListe") = lngCodeRéf
>>>>>>           rsFormation.Update
>>>>>>         rsFormaListe.Update
>>>>>>      End If
>>>>>> '--- Boucle sur la table rsFormaliste
>>>>>>      Do While Not rsFormaListe.EOF
>>>>>> '--- Recherche si l'enregistrement est trouvé
>>>>>>      rsFormaListe.FindFirst "[RéfActivitéListe]=" & Va l
>>>>>> (Me.txtRéfActivitéListe) & " And " & _
>>>>>>                              "[Réf ActivitéOption]=" & Val
>>>>>> (Me.cmbOption) & " And " & _
>>>>>>                               "[Ré fFormationListe]=" & Val
>>>>>> (Me.cmbFormation)
>>>>>> '--- Test sur NoMatch
>>>>>>      If rsFormaListe.NoMatch Then
>>>>>>         rsFormaListe.AddNew
>>>>>>           rsFormaListe("réfActivitéListe") = Me.tx tRéfActivitéListe
>>>>>>           rsFormaListe("réfActivitéOption") = Val( Me.cmbOption)
>>>>>>           rsFormaListe("réfFormationListe") = Val(Me .cmbFormation)
>>>>>>           lngCodeRéf = rsFormaListe("RéfFormationA ctivitéListe")
>>>>>>       Else
>>>>>>  '--- Trouvé NoMatch vaut True on met à jours
>>>>>>         rsFormaListe.Edit
>>>>>>       End If
>>>>>>           rsFormaListe("réfActivitéListe") = Me.tx tRéfActivitéListe
>>>>>>           rsFormaListe("réfActivitéOption") = Val( Me.cmbOption)
>>>>>>           rsFormaListe("réfFormationListe") = Val(Me .cmbFormation)
>>>>>>           lngCodeRéf = rsFormaListe("RéfFormationA ctivitéListe")
>>>>>>         rsFormaListe.Update
>>>>>> '--- Maj et Ajout dans la tbl rsFormation
>>>>>> '--- Recherche si l'enregistrement est trouvé
>>>>>>      rsFormation.FindFirst "[RéfFormationActivitéListe] =" &
>>>>>> rsFormaListe![RéfFormationActivitéListe]
>>>>>> '--- Non trouvé NoMatch vaut False on ajoute
>>>>>>      If rsFormation.NoMatch Then
>>>>>>           rsFormation.AddNew
>>>>>>           rsFormation("réfAnimateur") = Nz(TxtRéfA nimateur.Value, 0)
>>>>>>           rsFormation("réfFormationActivitéListe") = lngCodeRéf
>>>>>>      Else
>>>>>> '--- Trouvé NoMatch vaut True on met à jours
>>>>>>         rsFormation.Edit
>>>>>>      End If
>>>>>>          rsFormation("réfAnimateur") = Nz(TxtRéfAn imateur.Value, 0)
>>>>>>          rsFormation("DatesDu") = Nz(txtDateDu.Value)
>>>>>>          rsFormation("DatesAu") = Nz(txtDateAu.Value)
>>>>>>       rsFormation.Update
>>>>>>       rsFormaListe.MoveNext
>>>>>>      Loop
>>>>>> '--- Màj du sous formulaire
>>>>>>      Forms![frm Màj Formations]![frm Màj Formations-sfm] .Requery
>>>>>> '--- Ferme les objet
>>>>>>      rsFormaListe.Close: Set rsFormaListe = Nothing
>>>>>>      rsFormation.Close: Set rsFormation = Nothing
>>>>>>      db.Close: Set db = Nothing
>>>>>> GestionErreur:
>>>>>> End Sub- Masquer le texte des messages précédents -
>>>>> - Afficher le texte des messages précédents -
>>>> Bonjour Michel_D
>>>> Voici la relation des tables :
>>>> Tbl Formations
>>>> RéfRelation
>>>> RéfAnimateur
>>>> RéfFormationActivitéListe-8-----------1-RéfFormationActivité Liste de
>>>> la table Formations-Activité-Liste
>>>> Salutations
>>> Je pense qu'il faut mettre à jour ta table
>>> [RéfFormationActivitéListe] avant
>>>   de récupérer la référence à [txtRéfActivitéListe] q ue tu viens
>>> d'ajouter.

>>> PS:Le code pour "Test sur base vide" ne sert à rien.- Masquer le
>>> texte des messages précédents -

>>> - Afficher le texte des messages précédents -

>> Salutations

>> Bonjour Michel_D

>> J’ai supprimé le test sur les tables vides, mais je ne peux pas cr éer
>> le 1er enregistrement.

>> De même je n’ai pas pu régler le problème de la boucle.

>> Ci-joint une base allégée.

>>http://cjoint.com/?mukVkLO1mb
>> Salutations

> J'ai regardé ta base et comme j'ai pas tout compris, il me faudrait
> quelques
>  explications par rapport à ton schéma de relations, j'ai entour é dans
> l'image
>  (voir le lien) ce que je ne comprends pas et qui je pense est le noe ud
> du problème.

> D'aprés ce que j'ai compris tu veux assurer un suivi de formation dir igé
>  par des animateurs qui possèdent des activités personnelles.

> Ce que je ne comprends pas :
> Quelles sont les relations entre les formations et les activitées ?
>  (A cause de [RéfFormationActivitéListe] dans la table [tbl Forma tions])

>http://cjoint.com/?musRXGwakJ

Tiens il y a eu un problème lors de la création du lien, 2ème tenta tive.

http://cjoint.com/?mus0Ge8N3t- Masquer le texte des messages précéden ts -

- Afficher le texte des messages précédents -



Bonjour Michel_D

Je ne peux pas ouvrir ta pièce jointe, je te décris donc le
cheminement de la création des enregistrements :

Règle :
- Un animateur peut avoir plusieurs activités (disciplines) donc
plusieurs formations.
- Une formation (tbl Formations-Liste) se compose d’un PSC1 et des
UCC1, UCC2, UCC3, UF1, puis par d’autres formations, exemple UUC4,
UUC5 etc……..
- Chaque UCC a une option (Tbl Formations-Option)

- Donc lorsque je crée un animateur (tbl animateur) j’affecte sa
discipline avec RéfActivitéListe (tbl Activité-liste)

- Puis je passe à sa formations je cherche dans la tbl Formations-
Activités-Liste
le trio RéfActivitéListe, RéfActivitéOption, RéfFormationListe s ’il
existe je copie l’id
(RéfFormatiobActivitéListe) dans la table formation, autrement je cré e
ce trio dans la
Table Formations-Activités-Liste et je copie l’id dans la table
Formations.

J’espère que ces explications t’aideront.

Salutations
Avatar
Michel__D
Bonjour,

Jacques a écrit :
On 20 déc, 18:53, Michel__D
wrote:

Re,

Michel__D a écrit :






Bonjour,

Jacques a écrit :

On 19 déc, 14:26, Michel__D
wrote:

Re,

Jacques a écrit :

On 19 déc, 12:20, Michel__D
wrote:

Bonjour,
Quelle est le sens de la relation entre les deux tables ?
PS:J'ai l'impression que tu réalise l'opération dans l'ordre inverse.
Jacques a écrit :

Bonjour,
Lorsque je crée un enregistrement dans la table Formation-Activité-
Liste je voudrais rajouter
l’Id (réfFormationActivitéListe ) ainsi créé dans la table Formation.
-Les deux tables sont vides le 1er enregistrement se crée bien dans
les deux tables.
-Le 2ème enregistrement aussi.
-Si je reviens sur le 1er enregistrement (avec les mêmes valeurs)
j’obtiens une boucle sans fin.
-Si je reviens sur le 2ème enregistrement le code passe en bien par
Edit.
Où se trouve mon erreur ?
Je joins le code, et merci pour votre aide.
Salutations
Private Sub Commande11_Click()
On Error GoTo GestionErreur
Set db = CurrentDb()
'--- Intérogation de rsFormaListe
Set rsFormaListe = db.OpenRecordset("tbl Formations-Activités-
Liste", dbOpenDynaset)
'--- Intérogation de rsFormation
Set rsFormation = db.OpenRecordset("tbl Formations",
dbOpenDynaset)
'--- Test sur base vide
If rsFormaListe.RecordCount = 0 Then
rsFormaListe.AddNew
rsFormaListe("réfActivitéListe") = Me.txtRéfActivitéListe
rsFormaListe("réfActivitéOption") = Val(Me.cmbOption)
rsFormaListe("réfFormationListe") = Val(Me..cmbFormation)
lngCodeRéf = rsFormaListe("RéfFormationActivitéListe")
rsFormation.AddNew
rsFormation("réfAnimateur") = Nz(TxtRéfAnimateur.Value, 0)
rsFormation("DatesDu") = Nz(txtDateDu.Value)
rsFormation("DatesAu") = Nz(txtDateAu.Value)
rsFormation("réfFormationActivitéListe") = lngCodeRéf
rsFormation.Update
rsFormaListe.Update
End If
'--- Boucle sur la table rsFormaliste
Do While Not rsFormaListe.EOF
'--- Recherche si l'enregistrement est trouvé
rsFormaListe.FindFirst "[RéfActivitéListe]=" & Val
(Me.txtRéfActivitéListe) & " And " & _
"[RéfActivitéOption]=" & Val
(Me.cmbOption) & " And " & _
"[RéfFormationListe]=" & Val
(Me.cmbFormation)
'--- Test sur NoMatch
If rsFormaListe.NoMatch Then
rsFormaListe.AddNew
rsFormaListe("réfActivitéListe") = Me.txtRéfActivitéListe
rsFormaListe("réfActivitéOption") = Val(Me.cmbOption)
rsFormaListe("réfFormationListe") = Val(Me..cmbFormation)
lngCodeRéf = rsFormaListe("RéfFormationActivitéListe")
Else
'--- Trouvé NoMatch vaut True on met à jours
rsFormaListe.Edit
End If
rsFormaListe("réfActivitéListe") = Me.txtRéfActivitéListe
rsFormaListe("réfActivitéOption") = Val(Me.cmbOption)
rsFormaListe("réfFormationListe") = Val(Me..cmbFormation)
lngCodeRéf = rsFormaListe("RéfFormationActivitéListe")
rsFormaListe.Update
'--- Maj et Ajout dans la tbl rsFormation
'--- Recherche si l'enregistrement est trouvé
rsFormation.FindFirst "[RéfFormationActivitéListe]=" &
rsFormaListe![RéfFormationActivitéListe]
'--- Non trouvé NoMatch vaut False on ajoute
If rsFormation.NoMatch Then
rsFormation.AddNew
rsFormation("réfAnimateur") = Nz(TxtRéfAnimateur.Value, 0)
rsFormation("réfFormationActivitéListe") = lngCodeRéf
Else
'--- Trouvé NoMatch vaut True on met à jours
rsFormation.Edit
End If
rsFormation("réfAnimateur") = Nz(TxtRéfAnimateur.Value, 0)
rsFormation("DatesDu") = Nz(txtDateDu.Value)
rsFormation("DatesAu") = Nz(txtDateAu.Value)
rsFormation.Update
rsFormaListe.MoveNext
Loop
'--- Màj du sous formulaire
Forms![frm Màj Formations]![frm Màj Formations-sfm]..Requery
'--- Ferme les objet
rsFormaListe.Close: Set rsFormaListe = Nothing
rsFormation.Close: Set rsFormation = Nothing
db.Close: Set db = Nothing
GestionErreur:
End Sub- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -



Bonjour Michel_D
Voici la relation des tables :
Tbl Formations
RéfRelation
RéfAnimateur
RéfFormationActivitéListe-8-----------1-RéfFormationActivitéListe de
la table Formations-Activité-Liste
Salutations



Je pense qu'il faut mettre à jour ta table
[RéfFormationActivitéListe] avant
de récupérer la référence à [txtRéfActivitéListe] que tu viens
d'ajouter.

PS:Le code pour "Test sur base vide" ne sert à rien.- Masquer le
texte des messages précédents -

- Afficher le texte des messages précédents -



Salutations

Bonjour Michel_D

J’ai supprimé le test sur les tables vides, mais je ne peux pas créer
le 1er enregistrement.

De même je n’ai pas pu régler le problème de la boucle.

Ci-joint une base allégée.

http://cjoint.com/?mukVkLO1mb
Salutations



J'ai regardé ta base et comme j'ai pas tout compris, il me faudrait
quelques
explications par rapport à ton schéma de relations, j'ai entouré dans
l'image
(voir le lien) ce que je ne comprends pas et qui je pense est le noeud
du problème.

D'aprés ce que j'ai compris tu veux assurer un suivi de formation dirigé
par des animateurs qui possèdent des activités personnelles.

Ce que je ne comprends pas :
Quelles sont les relations entre les formations et les activitées ?
(A cause de [RéfFormationActivitéListe] dans la table [tbl Formations])

http://cjoint.com/?musRXGwakJ



Tiens il y a eu un problème lors de la création du lien, 2ème tentative.

http://cjoint.com/?mus0Ge8N3t- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -




Bonjour Michel_D

Je ne peux pas ouvrir ta pièce jointe, je te décris donc le
cheminement de la création des enregistrements :

Règle :
- Un animateur peut avoir plusieurs activités (disciplines) donc
plusieurs formations.
- Une formation (tbl Formations-Liste) se compose d’un PSC1 et des
UCC1, UCC2, UCC3, UF1, puis par d’autres formations, exemple UUC4,
UUC5 etc……..
- Chaque UCC a une option (Tbl Formations-Option)

- Donc lorsque je crée un animateur (tbl animateur) j’affecte sa
discipline avec RéfActivitéListe (tbl Activité-liste)

- Puis je passe à sa formations je cherche dans la tbl Formations-
Activités-Liste
le trio RéfActivitéListe, RéfActivitéOption, RéfFormationListe s’il
existe je copie l’id
(RéfFormatiobActivitéListe) dans la table formation, autrement je crée
ce trio dans la
Table Formations-Activités-Liste et je copie l’id dans la table
Formations.

J’espère que ces explications t’aideront.

Salutations




Mouais apparemment mes liens ne se font pas corecteemnt.

Je redonne un lien quand même.

http://cjoint.com/?mvukGw87pR

Aprés ce que tu viens de me dire, faut-il comprendre que tu réalise le
suivi des activités ou le
suivi des formations, en fait la finalité de ta base c'est quoi ?
Avatar
Jacques
On 21 déc, 20:11, Michel__D
wrote:
Bonjour,

Jacques a écrit :





> On 20 déc, 18:53, Michel__D
> wrote:

>> Re,

>> Michel__D a écrit :

>>> Bonjour,

>>> Jacques a écrit :

>>>> On 19 déc, 14:26, Michel__D
>>>> wrote:

>>>>> Re,

>>>>> Jacques a écrit :

>>>>>> On 19 déc, 12:20, Michel__D >
>>>>>> wrote:

>>>>>>> Bonjour,
>>>>>>> Quelle est le sens de la relation entre les deux tables ?
>>>>>>> PS:J'ai l'impression que tu réalise l'opération dans l'ordre inverse.
>>>>>>> Jacques a écrit :

>>>>>>>> Bonjour,
>>>>>>>> Lorsque je crée un enregistrement dans la  table Formation-A ctivité-
>>>>>>>> Liste je voudrais rajouter
>>>>>>>> l’Id (réfFormationActivitéListe ) ainsi créé dans la t able Formation.
>>>>>>>> -Les deux tables sont vides le 1er enregistrement se crée bien dans
>>>>>>>> les deux tables.
>>>>>>>> -Le 2ème enregistrement aussi.
>>>>>>>> -Si je reviens sur le 1er enregistrement (avec les mêmes valeu rs)
>>>>>>>> j’obtiens une boucle sans fin.
>>>>>>>> -Si je reviens sur le 2ème enregistrement le code passe en bie n par
>>>>>>>> Edit.
>>>>>>>> Où se trouve mon erreur ?
>>>>>>>> Je joins le code, et merci pour votre aide.
>>>>>>>> Salutations
>>>>>>>> Private Sub Commande11_Click()
>>>>>>>> On Error GoTo GestionErreur
>>>>>>>>      Set db = CurrentDb()
>>>>>>>> '--- Intérogation de rsFormaListe
>>>>>>>>      Set rsFormaListe = db.OpenRecordset("tbl Formations -Activités-
>>>>>>>> Liste", dbOpenDynaset)
>>>>>>>> '--- Intérogation de rsFormation
>>>>>>>>      Set rsFormation = db.OpenRecordset("tbl Formations" ,
>>>>>>>> dbOpenDynaset)
>>>>>>>> '--- Test sur base vide
>>>>>>>>      If rsFormaListe.RecordCount = 0 Then
>>>>>>>>         rsFormaListe.AddNew
>>>>>>>>           rsFormaListe("réfActivitéListe") = Me. txtRéfActivitéListe
>>>>>>>>           rsFormaListe("réfActivitéOption") = Va l(Me.cmbOption)
>>>>>>>>           rsFormaListe("réfFormationListe") = Val( Me..cmbFormation)
>>>>>>>>           lngCodeRéf = rsFormaListe("RéfFormatio nActivitéListe")
>>>>>>>>         rsFormation.AddNew
>>>>>>>>           rsFormation("réfAnimateur") = Nz(TxtRé fAnimateur.Value, 0)
>>>>>>>>           rsFormation("DatesDu") = Nz(txtDateDu.Valu e)
>>>>>>>>           rsFormation("DatesAu") = Nz(txtDateAu.Valu e)
>>>>>>>>           rsFormation("réfFormationActivitéListe") = lngCodeRéf
>>>>>>>>           rsFormation.Update
>>>>>>>>         rsFormaListe.Update
>>>>>>>>      End If
>>>>>>>> '--- Boucle sur la table rsFormaliste
>>>>>>>>      Do While Not rsFormaListe.EOF
>>>>>>>> '--- Recherche si l'enregistrement est trouvé
>>>>>>>>      rsFormaListe.FindFirst "[RéfActivitéListe]=" & Val
>>>>>>>> (Me.txtRéfActivitéListe) & " And " & _
>>>>>>>>                              "[R éfActivitéOption]=" & Val
>>>>>>>> (Me.cmbOption) & " And " & _
>>>>>>>>                               "[R éfFormationListe]=" & Val
>>>>>>>> (Me.cmbFormation)
>>>>>>>> '--- Test sur NoMatch
>>>>>>>>      If rsFormaListe.NoMatch Then
>>>>>>>>         rsFormaListe.AddNew
>>>>>>>>           rsFormaListe("réfActivitéListe") = Me. txtRéfActivitéListe
>>>>>>>>           rsFormaListe("réfActivitéOption") = Va l(Me.cmbOption)
>>>>>>>>           rsFormaListe("réfFormationListe") = Val( Me..cmbFormation)
>>>>>>>>           lngCodeRéf = rsFormaListe("RéfFormatio nActivitéListe")
>>>>>>>>       Else
>>>>>>>>  '--- Trouvé NoMatch vaut True on met à jours
>>>>>>>>         rsFormaListe.Edit
>>>>>>>>       End If
>>>>>>>>           rsFormaListe("réfActivitéListe") = Me. txtRéfActivitéListe
>>>>>>>>           rsFormaListe("réfActivitéOption") = Va l(Me.cmbOption)
>>>>>>>>           rsFormaListe("réfFormationListe") = Val( Me..cmbFormation)
>>>>>>>>           lngCodeRéf = rsFormaListe("RéfFormatio nActivitéListe")
>>>>>>>>         rsFormaListe.Update
>>>>>>>> '--- Maj et Ajout dans la tbl rsFormation
>>>>>>>> '--- Recherche si l'enregistrement est trouvé
>>>>>>>>      rsFormation.FindFirst "[RéfFormationActivitéListe ]=" &
>>>>>>>> rsFormaListe![RéfFormationActivitéListe]
>>>>>>>> '--- Non trouvé NoMatch vaut False on ajoute
>>>>>>>>      If rsFormation.NoMatch Then
>>>>>>>>           rsFormation.AddNew
>>>>>>>>           rsFormation("réfAnimateur") = Nz(TxtRé fAnimateur.Value, 0)
>>>>>>>>           rsFormation("réfFormationActivitéListe") = lngCodeRéf
>>>>>>>>      Else
>>>>>>>> '--- Trouvé NoMatch vaut True on met à jours
>>>>>>>>         rsFormation.Edit
>>>>>>>>      End If
>>>>>>>>          rsFormation("réfAnimateur") = Nz(TxtRéf Animateur.Value, 0)
>>>>>>>>          rsFormation("DatesDu") = Nz(txtDateDu.Value )
>>>>>>>>          rsFormation("DatesAu") = Nz(txtDateAu.Value )
>>>>>>>>       rsFormation.Update
>>>>>>>>       rsFormaListe.MoveNext
>>>>>>>>      Loop
>>>>>>>> '--- Màj du sous formulaire
>>>>>>>>      Forms![frm Màj Formations]![frm Màj Formations-sf m]..Requery
>>>>>>>> '--- Ferme les objet
>>>>>>>>      rsFormaListe.Close: Set rsFormaListe = Nothing
>>>>>>>>      rsFormation.Close: Set rsFormation = Nothing
>>>>>>>>      db.Close: Set db = Nothing
>>>>>>>> GestionErreur:
>>>>>>>> End Sub- Masquer le texte des messages précédents -

>>>>>>> - Afficher le texte des messages précédents -

>>>>>> Bonjour Michel_D
>>>>>> Voici la relation des tables :
>>>>>> Tbl Formations
>>>>>> RéfRelation
>>>>>> RéfAnimateur
>>>>>> RéfFormationActivitéListe-8-----------1-RéfFormationActivit éListe de
>>>>>> la table Formations-Activité-Liste
>>>>>> Salutations

>>>>> Je pense qu'il faut mettre à jour ta table
>>>>> [RéfFormationActivitéListe] avant
>>>>>   de récupérer la référence à [txtRéfActivitéListe] que tu viens
>>>>> d'ajouter.

>>>>> PS:Le code pour "Test sur base vide" ne sert à rien.- Masquer le
>>>>> texte des messages précédents -

>>>>> - Afficher le texte des messages précédents -

>>>> Salutations

>>>> Bonjour Michel_D

>>>> J’ai supprimé le test sur les tables vides, mais je ne peux pas créer
>>>> le 1er enregistrement.

>>>> De même je n’ai pas pu régler le problème de la boucle.

>>>> Ci-joint une base allégée.

>>>>http://cjoint.com/?mukVkLO1mb
>>>> Salutations

>>> J'ai regardé ta base et comme j'ai pas tout compris, il me faudrait
>>> quelques
>>>  explications par rapport à ton schéma de relations, j'ai entou ré dans
>>> l'image
>>>  (voir le lien) ce que je ne comprends pas et qui je pense est le n oeud
>>> du problème.

>>> D'aprés ce que j'ai compris tu veux assurer un suivi de formation d irigé
>>>  par des animateurs qui possèdent des activités personnelles.

>>> Ce que je ne comprends pas :
>>> Quelles sont les relations entre les formations et les activitées ?
>>>  (A cause de [RéfFormationActivitéListe] dans la table [tbl For mations])

>>>http://cjoint.com/?musRXGwakJ

>> Tiens il y a eu un problème lors de la création du lien, 2ème te ntative.

>>http://cjoint.com/?mus0Ge8N3t-Masquer le texte des messages précéde nts -

>> - Afficher le texte des messages précédents -

> Bonjour Michel_D

> Je ne peux pas ouvrir ta pièce jointe, je te décris donc le
> cheminement de la création des enregistrements :

> Règle :
> - Un animateur  peut avoir plusieurs activités (disciplines) donc
> plusieurs formations.
> - Une formation  (tbl Formations-Liste) se compose d’un PSC1 et des
> UCC1, UCC2, UCC3,  UF1, puis par d’autres formations, exemple UUC4,
> UUC5 etc……..
> - Chaque UCC a une option (Tbl Formations-Option)

> -  Donc lorsque je crée un animateur (tbl animateur) j’affecte sa
> discipline avec RéfActivitéListe (tbl Activité-liste)

> -  Puis je passe à sa formations je cherche dans la tbl Formations-
> Activités-Liste
> le trio RéfActivitéListe, RéfActivitéOption, RéfFormationList e  s’il
> existe je copie l’id
> (RéfFormatiobActivitéListe) dans la table formation, autrement je c rée
> ce trio dans la
> Table Formations-Activités-Liste et je copie l’id dans la table
> Formations.

> J’espère que ces explications t’aideront.

> Salutations

Mouais apparemment mes liens ne se font pas corecteemnt.

Je redonne un lien quand même.

http://cjoint.com/?mvukGw87pR

Aprés ce que tu viens de me dire, faut-il comprendre que tu réalise l e
suivi des activités ou le
suivi des formations, en fait la finalité de ta base c'est quoi ?- Masq uer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonjour Michel_D

La finalité de ma base est en autre la suivi des formations.

Je joins un schéma relationel un peu plus complet.

http://cjoint.com/?mxnvEtltCv

Salutations
Avatar
Michel__D
Jacques a écrit :

[...]
Bonjour Michel_D

La finalité de ma base est en autre la suivi des formations.

Je joins un schéma relationel un peu plus complet.

http://cjoint.com/?mxnvEtltCv

Salutations




J'avais pas vu la réponse, bon j'ai pas beaucoup de temps mais je vais
essayer de te proposer
une solution dés que possible.
1 2