OVH Cloud OVH Cloud

Dupliquer enregistrements dans un formulaire

7 réponses
Avatar
Trewan
Bonjour,

J'utilise dans un formulaire comprenant des sous-formulaires (ceux -ci
contenant des enregistrements de tables en relation avec la table
principale), la fonction "Dupliquer un enregistrement"

Dans un formulaire, ca marche bien, et la duplication copie
l'enregistrement de la table principale ainsi que les enregistrements
correspondants des tables en relations.

Par contre dans un autre formulaire, dans une autre base de donnée de
structure identique, la duplication ne copie que les données de
l'enregistrement de la table principale..

Pourtant , je fais la meme manip dans les deux BD , à savoir création
dans le formulaire d'un bouton "Dupliquer enregistrement" à partir de la
barre d'outils. J'ai regardé le code évenemmentiel créé est strictement
identique.

Je ne comprend pas pourquoi je n'arrive pas à copier tous les
enregistrements en relation?

Merci pour votre aide

Eric

7 réponses

Avatar
Gilles MOUGNOZ
Bonjour,
J'utilise dans un formulaire comprenant des sous-formulaires (ceux -ci
contenant des enregistrements de tables en relation avec la table
principale), la fonction "Dupliquer un enregistrement"
Dans un formulaire, ca marche bien, et la duplication copie
l'enregistrement de la table principale ainsi que les enregistrements
correspondants des tables en relations.
Par contre dans un autre formulaire, dans une autre base de donnée de
structure identique, la duplication ne copie que les données de
l'enregistrement de la table principale..
Pourtant , je fais la meme manip dans les deux BD , à savoir création dans
le formulaire d'un bouton "Dupliquer enregistrement" à partir de la barre
d'outils. J'ai regardé le code évenemmentiel créé est strictement
identique.
Je ne comprend pas pourquoi je n'arrive pas à copier tous les
enregistrements en relation?
Merci pour votre aide
Eric


Bonjour, Eric

Sans trop réfléchir: pour la base où cela ne fonctionne pas, au niveau des
relations entre les tables, les intégrités référentielles s'appliquent-elles
?
Si oui, l'option "Mettre à jour en cascade les champs correspondants"
est-elle cochée ?

Bonne continuation

Avatar
Trewan
Gilles MOUGNOZ wrote:

Bonjour, Eric

Sans trop réfléchir: pour la base où cela ne fonctionne pas, au niveau des
relations entre les tables, les intégrités référentielles s'appliquent-elles
?
Si oui, l'option "Mettre à jour en cascade les champs correspondants"
est-elle cochée ?

Bonne continuation



Oui, tout est coché, et identique dans les 2 bases.

Avatar
Gilles MOUGNOZ
Gilles MOUGNOZ wrote:
Bonjour, Eric
Sans trop réfléchir: pour la base où cela ne fonctionne pas, au niveau
des relations entre les tables, les intégrités référentielles
s'appliquent-elles ?
Si oui, l'option "Mettre à jour en cascade les champs correspondants"
est-elle cochée ?
Bonne continuation
Oui, tout est coché, et identique dans les 2 bases.



Peux-tu nous donner le code du bouton ?
Si le code est identique dans les deux bases, une explication peut être que
les données ne sont pas cohérentes dans les sous-tables et que l'opération
est donc interrompue après la copie de l'enregistrement principal.
Ta deuxième base peut aussi présenter un début de corruption. Dans ce cas,
crée une base vierge et importe tous tes objets dedans.

Bonne continuation


Avatar
Trewan
Gilles MOUGNOZ wrote:

Peux-tu nous donner le code du bouton ?
Si le code est identique dans les deux bases, une explication peut être que
les données ne sont pas cohérentes dans les sous-tables et que l'opération
est donc interrompue après la copie de l'enregistrement principal.
Ta deuxième base peut aussi présenter un début de corruption. Dans ce cas,
crée une base vierge et importe tous tes objets dedans.

Bonne continuation



Voici le code (créé par l'assistant access)

Private Sub CopieFiche_Click()
On Error GoTo Err_CopieFiche_Click


DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append

Exit_CopieFiche_Click:
Exit Sub

Err_CopieFiche_Click:
MsgBox Err.Description
Resume Exit_CopieFiche_Click

End Sub

Avatar
Gilles MOUGNOZ
Gilles MOUGNOZ wrote:
Peux-tu nous donner le code du bouton ?
Si le code est identique dans les deux bases, une explication peut être
que les données ne sont pas cohérentes dans les sous-tables et que
l'opération est donc interrompue après la copie de l'enregistrement
principal.
Ta deuxième base peut aussi présenter un début de corruption. Dans ce
cas, crée une base vierge et importe tous tes objets dedans.
Bonne continuation
Voici le code (créé par l'assistant access)

Private Sub CopieFiche_Click()
On Error GoTo Err_CopieFiche_Click
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append
Exit_CopieFiche_Click:
Exit Sub
Err_CopieFiche_Click:
MsgBox Err.Description
Resume Exit_CopieFiche_Click
End Sub


Le code est exactement le même que celui que mon Access m'a créé.
On sélectionne l'enregistrement, on le copie (ctrl+c) et on le colle
(ctrl+v).
On doit pouvoir transformer le code pour qu'il utilise les dernières
conventions (DoCmd.RunCommand) mais à mon avis le problème n'est pas là.
As-tu essayé de le faire "à la main" ? Comme je l'écris plus haut:
sélectionner, copier, coller.
Le problème persiste-t-il ? Si oui, ce n'est pas le programme qui est en
cause mais ce sont les données.
Essaie aussi de faire la manip que je t'ai indiquer (créer une base vierge
et importer tous les objets de ta seconde base).

Bonne continuation


Avatar
Trewan
Gilles MOUGNOZ wrote:
Le code est exactement le même que celui que mon Access m'a créé.
On sélectionne l'enregistrement, on le copie (ctrl+c) et on le colle
(ctrl+v).
On doit pouvoir transformer le code pour qu'il utilise les dernières
conventions (DoCmd.RunCommand) mais à mon avis le problème n'est pas là.
As-tu essayé de le faire "à la main" ? Comme je l'écris plus haut:
sélectionner, copier, coller.


Lorsque je fais "à la main", le problème persiste, seuls les données de
la table principale sont collées. Mais ca ne fonctionne dans aucune des
deux bases alors que le code "dupliquer" fonctionne sur une des bases

Je n'ai pas encore fait l'import des objets dans une base vierge mais je
vais essayer

Merci pour tes conseils

Eric

Avatar
Trewan
Trewan wrote:

Je n'ai pas encore fait l'import des objets dans une base vierge mais je
vais essayer



Donc aprés import dans une base vierge le problème persiste c'est
vraiment agacant car ca marche dans une base mais impossible de trouver
la différence ^^