OVH Cloud OVH Cloud

Dupliquer des enregistrements

13 réponses
Avatar
Baptiste
Bonjour,

J'ai un petit souci pour dupliquer des enregistrements.
J'ai un produit X (table PRODUIT) qui contient des accessoires (Table
CONTENU ACCESSOIRE)
Je souhaiterais avoir la possibilité lors de la création d'un produit Y
d'attribuer l'ensemble des acessoires de X automatiquement pour éviter de
faire la la saisie inutile.
Je sais faire une requête qui selectionne les accessoires de X mais comment
les dupliquer à Y

Merci de votre aide.

Baptiste

10 réponses

1 2
Avatar
Bonjour

Il faut modifier ta requête de sélection (qui retourne les accesssoires des produits X") en requête ajout
Choisir alors la table "CONTENU ACCESSOIRE" = > les champs vont se mettre tout seuls dans la ligne 'ajouter à"
Dans la colonne Produit, celle qui retourne "X" en mode sélection (cliquer sur le bouton affichage mode feuille de doonnées" pour
vérifier);
remplacer par expr1:"Y"

La requête est prête à dupliquer la nomenclature de X sur Y (attention à l'intégrité référentielle : Y doit exister en théorie dans
la table PRODUITS"

Pour rendre cette requête plus universelle, on remplacera expr1:"y" par expr1:Formulaires![TonFormulaire]![Produit]
et on exécutera la requête depuis le bouton du formulaire (événement "sur clic")


--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------

"Baptiste" a écrit dans le message de news:

Bonjour,

J'ai un petit souci pour dupliquer des enregistrements.
J'ai un produit X (table PRODUIT) qui contient des accessoires (Table
CONTENU ACCESSOIRE)
Je souhaiterais avoir la possibilité lors de la création d'un produit Y
d'attribuer l'ensemble des acessoires de X automatiquement pour éviter de
faire la la saisie inutile.
Je sais faire une requête qui selectionne les accessoires de X mais comment
les dupliquer à Y

Merci de votre aide.

Baptiste


Avatar
Baptiste
Bonjour,

Ma requête d'ajout est faite comme tu me l'a conseillé mais ça marche
bizarrement... Lorsque je lance la requête manuellement, il me demande si je
souhaite ajouter 4 lignes (jusque là tout va bien car c'est les 4 accessoires
de mon produit X que je souhaite attribuer à mon produit Y) mais en suite il
me dit 4 enregistrements n'ont pas été ajoutés à la table à la suite de
violation de clé... je ne comprends pas pourquoi et quand je fais marcher ma
requête à partir d'un bouton dans un formulaire, il ne m'affiche pas se
message mais la requête d'ajout fonctionne bizarrement, des fois il m'ajoute
4 enregistrements sur 4, des fois 2, des fois 3... c'est pas stable du tout.

ma table Contient est composé comme cela :


Ref_contient : numéroAuto (clé de la table)
Ref_produit : numerique (en lien avec ma table produit)
Ref_accessoire : numérique
Largeur : numérique
Longueur : numérique
Nb_unité : numérique
Sous-total : numérique

ma requete est la suivante :


Type de requête ajout

Colonne 1 Expr1:[p], ajouter à Ref_produit
Colonne 2 Ref_accessoire de la table contient, ajouter à Ref_accessoire
Colonne 3 Largeur de la table Contient, ajouter à Largeur
Colonne 4 Longueur de la table Contient, ajouter à Longueur
Colonne 5 Nb_unite de la table Contient, ajouter à Nb_unite
Colonne 6 Sous-total de la table Contient, ajouter à Sous-total
Colonne 7 Ref_produit de la table Produit avec comme critère [c]

avec [p] qui fait ref à mon produit Y auquel je souhaite ajouter les
enregistrements
et [c] qui fait ref au produit à qui je copie les enregistrements

Voilà j'espère que tu pourra m'éclairer...
Merci de temps que tu me consacres.

Baptiste


Bonjour

Il faut modifier ta requête de sélection (qui retourne les accesssoires des produits X") en requête ajout
Choisir alors la table "CONTENU ACCESSOIRE" = > les champs vont se mettre tout seuls dans la ligne 'ajouter à"
Dans la colonne Produit, celle qui retourne "X" en mode sélection (cliquer sur le bouton affichage mode feuille de doonnées" pour
vérifier);
remplacer par expr1:"Y"

La requête est prête à dupliquer la nomenclature de X sur Y (attention à l'intégrité référentielle : Y doit exister en théorie dans
la table PRODUITS"

Pour rendre cette requête plus universelle, on remplacera expr1:"y" par expr1:Formulaires![TonFormulaire]![Produit]
et on exécutera la requête depuis le bouton du formulaire (événement "sur clic")


--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------

"Baptiste" a écrit dans le message de news:

Bonjour,

J'ai un petit souci pour dupliquer des enregistrements.
J'ai un produit X (table PRODUIT) qui contient des accessoires (Table
CONTENU ACCESSOIRE)
Je souhaiterais avoir la possibilité lors de la création d'un produit Y
d'attribuer l'ensemble des acessoires de X automatiquement pour éviter de
faire la la saisie inutile.
Je sais faire une requête qui selectionne les accessoires de X mais comment
les dupliquer à Y

Merci de votre aide.

Baptiste







Avatar
Salut

supprime la colonne NoAuto de la requête ajout : ce champ se renseigne tout seul

pour les confirmations d'ajout, fais précéder l'exécution de la requête par
docmd.setwarnings false
docmd.openquery
docmd.setwarnings true

a+
--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------


"Baptiste" a écrit dans le message de news:

Bonjour,

Ma requête d'ajout est faite comme tu me l'a conseillé mais ça marche
bizarrement... Lorsque je lance la requête manuellement, il me demande si je
souhaite ajouter 4 lignes (jusque là tout va bien car c'est les 4 accessoires
de mon produit X que je souhaite attribuer à mon produit Y) mais en suite il
me dit 4 enregistrements n'ont pas été ajoutés à la table à la suite de
violation de clé... je ne comprends pas pourquoi et quand je fais marcher ma
requête à partir d'un bouton dans un formulaire, il ne m'affiche pas se
message mais la requête d'ajout fonctionne bizarrement, des fois il m'ajoute
4 enregistrements sur 4, des fois 2, des fois 3... c'est pas stable du tout.

ma table Contient est composé comme cela :


Ref_contient : numéroAuto (clé de la table)
Ref_produit : numerique (en lien avec ma table produit)
Ref_accessoire : numérique
Largeur : numérique
Longueur : numérique
Nb_unité : numérique
Sous-total : numérique

ma requete est la suivante :


Type de requête ajout

Colonne 1 Expr1:[p], ajouter à Ref_produit
Colonne 2 Ref_accessoire de la table contient, ajouter à Ref_accessoire
Colonne 3 Largeur de la table Contient, ajouter à Largeur
Colonne 4 Longueur de la table Contient, ajouter à Longueur
Colonne 5 Nb_unite de la table Contient, ajouter à Nb_unite
Colonne 6 Sous-total de la table Contient, ajouter à Sous-total
Colonne 7 Ref_produit de la table Produit avec comme critère [c]

avec [p] qui fait ref à mon produit Y auquel je souhaite ajouter les
enregistrements
et [c] qui fait ref au produit à qui je copie les enregistrements

Voilà j'espère que tu pourra m'éclairer...
Merci de temps que tu me consacres.

Baptiste


Bonjour

Il faut modifier ta requête de sélection (qui retourne les accesssoires des produits X") en requête ajout
Choisir alors la table "CONTENU ACCESSOIRE" = > les champs vont se mettre tout seuls dans la ligne 'ajouter à"
Dans la colonne Produit, celle qui retourne "X" en mode sélection (cliquer sur le bouton affichage mode feuille de doonnées" pour
vérifier);
remplacer par expr1:"Y"

La requête est prête à dupliquer la nomenclature de X sur Y (attention à l'intégrité référentielle : Y doit exister en théorie
dans
la table PRODUITS"

Pour rendre cette requête plus universelle, on remplacera expr1:"y" par expr1:Formulaires![TonFormulaire]![Produit]
et on exécutera la requête depuis le bouton du formulaire (événement "sur clic")


--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------

"Baptiste" a écrit dans le message de news:

Bonjour,

J'ai un petit souci pour dupliquer des enregistrements.
J'ai un produit X (table PRODUIT) qui contient des accessoires (Table
CONTENU ACCESSOIRE)
Je souhaiterais avoir la possibilité lors de la création d'un produit Y
d'attribuer l'ensemble des acessoires de X automatiquement pour éviter de
faire la la saisie inutile.
Je sais faire une requête qui selectionne les accessoires de X mais comment
les dupliquer à Y

Merci de votre aide.

Baptiste









Avatar
Baptiste
Bonjour,

La colonne NoAuto était déjà enlevée...
j'ai mis le code avant d'executer ma requête et il me met une erreur sur le
ligne
docmd.openquery

mais je pense que de cacher les messages d'erreur n'arrange pas la situation
car la requête est toujours instable... je l'ai tourné dans tous les sens et
il y a toujours un problème de violation de clé... je comprends pas.
Tu n'aurais pas une adresse Mail sur laquelle je pourrais t'envoyer une
copie de certain ecran afin que tu comprennes mieux?

Merci beaucoup

Baptiste


Salut

supprime la colonne NoAuto de la requête ajout : ce champ se renseigne tout seul

pour les confirmations d'ajout, fais précéder l'exécution de la requête par
docmd.setwarnings false
docmd.openquery
docmd.setwarnings true

a+
--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------


"Baptiste" a écrit dans le message de news:

Bonjour,

Ma requête d'ajout est faite comme tu me l'a conseillé mais ça marche
bizarrement... Lorsque je lance la requête manuellement, il me demande si je
souhaite ajouter 4 lignes (jusque là tout va bien car c'est les 4 accessoires
de mon produit X que je souhaite attribuer à mon produit Y) mais en suite il
me dit 4 enregistrements n'ont pas été ajoutés à la table à la suite de
violation de clé... je ne comprends pas pourquoi et quand je fais marcher ma
requête à partir d'un bouton dans un formulaire, il ne m'affiche pas se
message mais la requête d'ajout fonctionne bizarrement, des fois il m'ajoute
4 enregistrements sur 4, des fois 2, des fois 3... c'est pas stable du tout.

ma table Contient est composé comme cela :


Ref_contient : numéroAuto (clé de la table)
Ref_produit : numerique (en lien avec ma table produit)
Ref_accessoire : numérique
Largeur : numérique
Longueur : numérique
Nb_unité : numérique
Sous-total : numérique

ma requete est la suivante :


Type de requête ajout

Colonne 1 Expr1:[p], ajouter à Ref_produit
Colonne 2 Ref_accessoire de la table contient, ajouter à Ref_accessoire
Colonne 3 Largeur de la table Contient, ajouter à Largeur
Colonne 4 Longueur de la table Contient, ajouter à Longueur
Colonne 5 Nb_unite de la table Contient, ajouter à Nb_unite
Colonne 6 Sous-total de la table Contient, ajouter à Sous-total
Colonne 7 Ref_produit de la table Produit avec comme critère [c]

avec [p] qui fait ref à mon produit Y auquel je souhaite ajouter les
enregistrements
et [c] qui fait ref au produit à qui je copie les enregistrements

Voilà j'espère que tu pourra m'éclairer...
Merci de temps que tu me consacres.

Baptiste


Bonjour

Il faut modifier ta requête de sélection (qui retourne les accesssoires des produits X") en requête ajout
Choisir alors la table "CONTENU ACCESSOIRE" = > les champs vont se mettre tout seuls dans la ligne 'ajouter à"
Dans la colonne Produit, celle qui retourne "X" en mode sélection (cliquer sur le bouton affichage mode feuille de doonnées" pour
vérifier);
remplacer par expr1:"Y"

La requête est prête à dupliquer la nomenclature de X sur Y (attention à l'intégrité référentielle : Y doit exister en théorie
dans
la table PRODUITS"

Pour rendre cette requête plus universelle, on remplacera expr1:"y" par expr1:Formulaires![TonFormulaire]![Produit]
et on exécutera la requête depuis le bouton du formulaire (événement "sur clic")


--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------

"Baptiste" a écrit dans le message de news:

Bonjour,

J'ai un petit souci pour dupliquer des enregistrements.
J'ai un produit X (table PRODUIT) qui contient des accessoires (Table
CONTENU ACCESSOIRE)
Je souhaiterais avoir la possibilité lors de la création d'un produit Y
d'attribuer l'ensemble des acessoires de X automatiquement pour éviter de
faire la la saisie inutile.
Je sais faire une requête qui selectionne les accessoires de X mais comment
les dupliquer à Y

Merci de votre aide.

Baptiste














Avatar
3stone
Salut,

"Baptiste"
[...]
| Tu n'aurais pas une adresse Mail sur laquelle je pourrais t'envoyer une
| copie de certain ecran afin que tu comprennes mieux?


Utilise ceci : http://cjoint.com/index.php



--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Baptiste
Bonne idée, merci et voici le lien

http://cjoint.com/?gunMFt7Uiy

Baptiste


Salut,

"Baptiste"
[...]
| Tu n'aurais pas une adresse Mail sur laquelle je pourrais t'envoyer une
| copie de certain ecran afin que tu comprennes mieux?


Utilise ceci : http://cjoint.com/index.php



--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/




Avatar
Salut
- quelles sont les valeurs de p et c ?
- tu es sûr que Ref_produit existe dans la table Produit brut ?
- Pourquoi ne bâtis tu pas une syntaxe sql simple, sans la gestion de paramètres dont j'ai du mal à en comprendre le sens ?
Perso, j'aurais plutôt tenté l'excution de code sql contruit à la volée :

dim strsql as tring
strsql = "INSERT INTO LaTable blablabla"
currentdb.execute strsql

Pour faire ça, fabrique une requête ajout "à la main" avec des valeurs p et c "en dur",
regarde sa syntraxe sql,
adapte pour passer la valeur de Me.Ref_produit puis exécute comme ci dessus

a+
--
Arnaud
---------------------------------------------
http://www.mpfa.info : plus besoin de pompe à vélo !
---------------------------------------------




"Baptiste" a écrit dans le message de news:

Bonne idée, merci et voici le lien

http://cjoint.com/?gunMFt7Uiy

Baptiste


Salut,

"Baptiste"
[...]
| Tu n'aurais pas une adresse Mail sur laquelle je pourrais t'envoyer une
| copie de certain ecran afin que tu comprennes mieux?


Utilise ceci : http://cjoint.com/index.php



--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/






Avatar
Baptiste
Bonjour,

Les valeur de p et de c font reference à mon produit A et mon produit B
Ref_produit existe bien dans la table produit brut et dans ma syntaxe, ça
fait reférence au ref_produit en court de selection dans mon formulaire.

Ce que je comprends pas, c'est que lorsque je prévisualise la requete elle
m'affiche bien mes 4 elements à copier avec tout les bons element et si je
l'exexute rien ne se passe car il y a violation de clé. Par contre lorsque
j'execute le code, pas de message d'erreur mais la requête est instable il
manque toujours de éléments.

Je n'avoue pas bien comprendre ta proposition de solution, je n'ai pas
l'habitude de ce type de code...

Je tourne en rond sur ce probleme !
Merci

Baptiste


Salut
- quelles sont les valeurs de p et c ?
- tu es sûr que Ref_produit existe dans la table Produit brut ?
- Pourquoi ne bâtis tu pas une syntaxe sql simple, sans la gestion de paramètres dont j'ai du mal à en comprendre le sens ?
Perso, j'aurais plutôt tenté l'excution de code sql contruit à la volée :

dim strsql as tring
strsql = "INSERT INTO LaTable blablabla"
currentdb.execute strsql

Pour faire ça, fabrique une requête ajout "à la main" avec des valeurs p et c "en dur",
regarde sa syntraxe sql,
adapte pour passer la valeur de Me.Ref_produit puis exécute comme ci dessus

a+
--
Arnaud
---------------------------------------------
http://www.mpfa.info : plus besoin de pompe à vélo !
---------------------------------------------




"Baptiste" a écrit dans le message de news:

Bonne idée, merci et voici le lien

http://cjoint.com/?gunMFt7Uiy

Baptiste


Salut,

"Baptiste"
[...]
| Tu n'aurais pas une adresse Mail sur laquelle je pourrais t'envoyer une
| copie de certain ecran afin que tu comprennes mieux?


Utilise ceci : http://cjoint.com/index.php



--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/











Avatar
Salut
oui mais ce que j'ai essayé de te faire comprendre, c'est que perso, pour être spur que ça fonctionne,
je crée une requête ajout avec des valeurs fictives (en durs) de p et c .
une fois que cette requête ajout fonctionne, tu peux en extraire le code sql et lui passer p et c en variables.

Donc il faut que tu tentes de commencer par le début avec des choses simples, pas des parameters etc...

malheureusement, je ne peux pas le faire pour toi ...

si tu n'y arrives toujours pas, mets une partie de ta base avec les 2 table et la procédure ajout sur cjoint.com et
quelqu'un tentera bien de te proposer le truc qui fonctionne

a+

--
Arnaud
-----------------------------------------
http://www.mpfa.info :
le site où l'on devrait payer pour y figurer
-----------------------------------------

"Baptiste" a écrit dans le message de news:

Bonjour,

Les valeur de p et de c font reference à mon produit A et mon produit B
Ref_produit existe bien dans la table produit brut et dans ma syntaxe, ça
fait reférence au ref_produit en court de selection dans mon formulaire.

Ce que je comprends pas, c'est que lorsque je prévisualise la requete elle
m'affiche bien mes 4 elements à copier avec tout les bons element et si je
l'exexute rien ne se passe car il y a violation de clé. Par contre lorsque
j'execute le code, pas de message d'erreur mais la requête est instable il
manque toujours de éléments.

Je n'avoue pas bien comprendre ta proposition de solution, je n'ai pas
l'habitude de ce type de code...

Je tourne en rond sur ce probleme !
Merci

Baptiste



Avatar
Baptiste
Bonjour

Encore merci pour ta réponse, c'est vraiment sympa de m'aider comme ça
J'ai essayé de la faire la requête avec des valeurs en "dur" et je tombe
toujours sur le même resultat, problème de violation de clé. Sur les 4
enregistrement que je souhaite ajouter, 1,2,3 voir 4 de temps en temps ne
peuvent s'ajouter car problème de violation de clé... je comprend pas.

En préparant un fichier avec uniquement les tables concernées et la requête
afin de la mettre sur www.cjoint.com, ej me suis rendu compte d'un phénomène
: Ma BD est divisée en deux, la première comporte l'interface (formulaire,
requête, états, modules) et une seconde est composée uniquement des tables.
J'ouvre donc l'interface en lui demandant d'aller chercher les infos dans les
tables de la seconde en utilisant les tables liées. Ce principe fonctionne
bien et ça me permet de faire une sauvegarde quotidienne de mes données sans
avoir l'interface qui est assez lourde. En préparant le fichier, j'ai importé
les tables de manière à n'avoir qu'une BD, j'ai réessayer de lancer ma
requête et là, aucun problèmes... j'ai fait plein d'autres essai pour au
final me rendre compte que c'est quand je fonctionne avec les tables liées
que j'ai un problème de violation de clé. Comment se fait il? y a t il des
solutions?

Merci de votre aide... (je dois absolument régler ce foutu problème...)

Baptiste


Salut
oui mais ce que j'ai essayé de te faire comprendre, c'est que perso, pour être spur que ça fonctionne,
je crée une requête ajout avec des valeurs fictives (en durs) de p et c .
une fois que cette requête ajout fonctionne, tu peux en extraire le code sql et lui passer p et c en variables.

Donc il faut que tu tentes de commencer par le début avec des choses simples, pas des parameters etc...

malheureusement, je ne peux pas le faire pour toi ...

si tu n'y arrives toujours pas, mets une partie de ta base avec les 2 table et la procédure ajout sur cjoint.com et
quelqu'un tentera bien de te proposer le truc qui fonctionne

a+

--
Arnaud
-----------------------------------------
http://www.mpfa.info :
le site où l'on devrait payer pour y figurer
-----------------------------------------

"Baptiste" a écrit dans le message de news:

Bonjour,

Les valeur de p et de c font reference à mon produit A et mon produit B
Ref_produit existe bien dans la table produit brut et dans ma syntaxe, ça
fait reférence au ref_produit en court de selection dans mon formulaire.

Ce que je comprends pas, c'est que lorsque je prévisualise la requete elle
m'affiche bien mes 4 elements à copier avec tout les bons element et si je
l'exexute rien ne se passe car il y a violation de clé. Par contre lorsque
j'execute le code, pas de message d'erreur mais la requête est instable il
manque toujours de éléments.

Je n'avoue pas bien comprendre ta proposition de solution, je n'ai pas
l'habitude de ce type de code...

Je tourne en rond sur ce probleme !
Merci

Baptiste








1 2