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

Erreur sur requête ajout

4 réponses
Avatar
Baptiste
Bonjour,

J'ai un soucis une requête ajout.
J'ai un produit qui a plusieurs accessoires pour éviter lors de la création
d'un nouveau produit similaire de réatribuer tous les accessoires à ce
produit, je souhaite dupliquer les accessoires du produit A vers le produit B.

Pour cela j'ai créé un requête ajout qui fonctionne bien quand je la
déclenche manuellement.

Par contre quand je la déclenche par l'intermédiaire d'un formulaire, rien
de marche... je comprends pas

Voici ma requête d'ajout:

PARAMETERS A Long, B Long;
INSERT INTO contient ( Ref_prod_fini, Ref_accessoire, Largeur_accessoire,
Longueur_accessoire, Nb_unite )
SELECT [B] AS Expr1, contient.Ref_accessoire, contient.Largeur_accessoire,
contient.Longueur_accessoire, contient.Nb_unite
FROM contient
WHERE (((contient.Ref_prod_fini)=[A]));


A est la clé du produit à partir duquel je souhaite copier les accessoires
B est la clé du produit à qui je souhaite attribuer les accessoires de A

Mon code pour activer la requête est le suivant

Dim req As QueryDef
Dim db As Database
Set db = CurrentDb
Set req1 = db.QueryDefs("Transposition accessoires")
req1.Parameters![p] = Me.Ref_prod_fini
req1.Parameters![C] = Me.Choix
req1.Execute

le code fonctionne sans indiquer d'erreur et les données sont ajoutés dans
la table "contient" mais le champ "ref_prod_fini" qui devrait avoir la valeur
B est vide.... je comprends pas.

D'avance merci pour votre aide.


Baptiste

4 réponses

Avatar
ze Titi
Hello Baptiste !

Comprends pas bien l'utilisation des arguments... Ils ont un nom dans
la requête et tu les appelles autrement dans ton code. Faut-il y voir
une relation ?

En ce jour mémorable du mercredi 20/06/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour,

J'ai un soucis une requête ajout.
J'ai un produit qui a plusieurs accessoires pour éviter lors de la création
d'un nouveau produit similaire de réatribuer tous les accessoires à ce
produit, je souhaite dupliquer les accessoires du produit A vers le produit
B.

Pour cela j'ai créé un requête ajout qui fonctionne bien quand je la
déclenche manuellement.

Par contre quand je la déclenche par l'intermédiaire d'un formulaire, rien
de marche... je comprends pas

Voici ma requête d'ajout:

PARAMETERS A Long, B Long;
INSERT INTO contient ( Ref_prod_fini, Ref_accessoire, Largeur_accessoire,
Longueur_accessoire, Nb_unite )
SELECT [B] AS Expr1, contient.Ref_accessoire, contient.Largeur_accessoire,
contient.Longueur_accessoire, contient.Nb_unite
FROM contient
WHERE (((contient.Ref_prod_fini)=[A]));


A est la clé du produit à partir duquel je souhaite copier les accessoires
B est la clé du produit à qui je souhaite attribuer les accessoires de A

Mon code pour activer la requête est le suivant

Dim req As QueryDef
Dim db As Database
Set db = CurrentDb
Set req1 = db.QueryDefs("Transposition accessoires")
req1.Parameters![p] = Me.Ref_prod_fini
req1.Parameters![C] = Me.Choix
req1.Execute

le code fonctionne sans indiquer d'erreur et les données sont ajoutés dans
la table "contient" mais le champ "ref_prod_fini" qui devrait avoir la valeur
B est vide.... je comprends pas.

D'avance merci pour votre aide.


Baptiste


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info

Avatar
Raymond [mvp]
Bonjour ze Titi.

je verrais bien ça, considérant que la requête enregistrée fonctionne:

DoCmd.SetWarnings False
Dim Req1 As DAO.QueryDef
Dim Db As DAO.Database
Set Db = CurrentDb
Set Req1 = Db.QueryDefs("Transposition accessoires")
Req1.Parameters![B] = Me.Ref_prod_fini
Req1.Parameters![A] = Me.Choix
Req1.Execute
Set Req1 = Nothing
Set Db = Nothing
DoCmd.SetWarnings True

pour ce qui est de la valeur "B est vide.... je comprends pas" c'est autre
chose et le problème se trouve sur le formulaire ou peut-être dans la
colonne si c'est des listes modifiables.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"ze Titi" a écrit dans le message de news:

| Hello Baptiste !
|
| Comprends pas bien l'utilisation des arguments... Ils ont un nom dans
| la requête et tu les appelles autrement dans ton code. Faut-il y voir
| une relation ?
|
| En ce jour mémorable du mercredi 20/06/2007, tu as entrepris la lourde
| tâche de taper sur ton clavier :
| > Bonjour,
| >
| > J'ai un soucis une requête ajout.
| > J'ai un produit qui a plusieurs accessoires pour éviter lors de la
création
| > d'un nouveau produit similaire de réatribuer tous les accessoires à ce
| > produit, je souhaite dupliquer les accessoires du produit A vers le
produit
| > B.
| >
| > Pour cela j'ai créé un requête ajout qui fonctionne bien quand je la
| > déclenche manuellement.
| >
| > Par contre quand je la déclenche par l'intermédiaire d'un formulaire,
rien
| > de marche... je comprends pas
| >
| > Voici ma requête d'ajout:
| >
| > PARAMETERS A Long, B Long;
| > INSERT INTO contient ( Ref_prod_fini, Ref_accessoire,
Largeur_accessoire,
| > Longueur_accessoire, Nb_unite )
| > SELECT [B] AS Expr1, contient.Ref_accessoire,
contient.Largeur_accessoire,
| > contient.Longueur_accessoire, contient.Nb_unite
| > FROM contient
| > WHERE (((contient.Ref_prod_fini)=[A]));
| >
| >
| > A est la clé du produit à partir duquel je souhaite copier les
accessoires
| > B est la clé du produit à qui je souhaite attribuer les accessoires de A
| >
| > Mon code pour activer la requête est le suivant
| >
| > Dim req As QueryDef
| > Dim db As Database
| > Set db = CurrentDb
| > Set req1 = db.QueryDefs("Transposition accessoires")
| > req1.Parameters![p] = Me.Ref_prod_fini
| > req1.Parameters![C] = Me.Choix
| > req1.Execute
| >
| > le code fonctionne sans indiquer d'erreur et les données sont ajoutés
dans
| > la table "contient" mais le champ "ref_prod_fini" qui devrait avoir la
valeur
| > B est vide.... je comprends pas.
| >
| > D'avance merci pour votre aide.
| >
| >
| > Baptiste
|
| --
| Cordialement,
| Ze Titi
|
| Tout pour réussir avec Access :
| http://www.mpfa.info
|
|
Avatar
ze Titi
Tout à fait, Raymond ! C'est bien de ça que je parlais. Maintenant,
c'est à Baptiste de nous dire si le problème vient de là ou non.

En ce jour exceptionnel du mercredi 20/06/2007, tu nous as très
généreusement gratifié du message suivant:

Bonjour ze Titi.

je verrais bien ça, considérant que la requête enregistrée fonctionne:

DoCmd.SetWarnings False
Dim Req1 As DAO.QueryDef
Dim Db As DAO.Database
Set Db = CurrentDb
Set Req1 = Db.QueryDefs("Transposition accessoires")
Req1.Parameters![B] = Me.Ref_prod_fini
Req1.Parameters![A] = Me.Choix
Req1.Execute
Set Req1 = Nothing
Set Db = Nothing
DoCmd.SetWarnings True

pour ce qui est de la valeur "B est vide.... je comprends pas" c'est autre
chose et le problème se trouve sur le formulaire ou peut-être dans la
colonne si c'est des listes modifiables.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"ze Titi" a écrit dans le message de news:

Hello Baptiste !

Comprends pas bien l'utilisation des arguments... Ils ont un nom dans
la requête et tu les appelles autrement dans ton code. Faut-il y voir
une relation ?

En ce jour mémorable du mercredi 20/06/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour,

J'ai un soucis une requête ajout.
J'ai un produit qui a plusieurs accessoires pour éviter lors de la création
d'un nouveau produit similaire de réatribuer tous les accessoires à ce
produit, je souhaite dupliquer les accessoires du produit A vers le produit
B.

Pour cela j'ai créé un requête ajout qui fonctionne bien quand je la
déclenche manuellement.

Par contre quand je la déclenche par l'intermédiaire d'un formulaire, rien
de marche... je comprends pas

Voici ma requête d'ajout:

PARAMETERS A Long, B Long;
INSERT INTO contient ( Ref_prod_fini, Ref_accessoire, Largeur_accessoire,
Longueur_accessoire, Nb_unite )
SELECT [B] AS Expr1, contient.Ref_accessoire, contient.Largeur_accessoire,
contient.Longueur_accessoire, contient.Nb_unite
FROM contient
WHERE (((contient.Ref_prod_fini)=[A]));


A est la clé du produit à partir duquel je souhaite copier les accessoires
B est la clé du produit à qui je souhaite attribuer les accessoires de A

Mon code pour activer la requête est le suivant

Dim req As QueryDef
Dim db As Database
Set db = CurrentDb
Set req1 = db.QueryDefs("Transposition accessoires")
req1.Parameters![p] = Me.Ref_prod_fini
req1.Parameters![C] = Me.Choix
req1.Execute

le code fonctionne sans indiquer d'erreur et les données sont ajoutés dans
la table "contient" mais le champ "ref_prod_fini" qui devrait avoir la
valeur B est vide.... je comprends pas.

D'avance merci pour votre aide.


Baptiste


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info



--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info



Avatar
Baptiste
Vous êtes incroyables de répondre si bien et si vite....
En analysant vos réponse, j'ai fait d'autres essais et je me suis rendu
compte que le problème ne venait pas de mon code car ma requête fonctionne et
même avec le code de Raymond ça ne marche pas...
En fait, j'ai remarqué que j'arrive à copier les accessoires de A sur B si
j'ai au moins un accessoire déjà créer sur B. J'ai compris l'erreur à partir
de là car en fait le formulaire à partir duquel j'active la requête affiche
les accessoires du produit B (donc vide au début) donc le champ
"Ref_prod_fini" est de ce fait là vide aussi même si je l'avais mis en entête
de formulaire. J'ai donc changer la source de mon paramètre "Ref_prod_fini"
et maintenant ça fonctionne !

Milles merci pour votre aide !

Baptiste


Tout à fait, Raymond ! C'est bien de ça que je parlais. Maintenant,
c'est à Baptiste de nous dire si le problème vient de là ou non.

En ce jour exceptionnel du mercredi 20/06/2007, tu nous as très
généreusement gratifié du message suivant:

Bonjour ze Titi.

je verrais bien ça, considérant que la requête enregistrée fonctionne:

DoCmd.SetWarnings False
Dim Req1 As DAO.QueryDef
Dim Db As DAO.Database
Set Db = CurrentDb
Set Req1 = Db.QueryDefs("Transposition accessoires")
Req1.Parameters![B] = Me.Ref_prod_fini
Req1.Parameters![A] = Me.Choix
Req1.Execute
Set Req1 = Nothing
Set Db = Nothing
DoCmd.SetWarnings True

pour ce qui est de la valeur "B est vide.... je comprends pas" c'est autre
chose et le problème se trouve sur le formulaire ou peut-être dans la
colonne si c'est des listes modifiables.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"ze Titi" a écrit dans le message de news:

Hello Baptiste !

Comprends pas bien l'utilisation des arguments... Ils ont un nom dans
la requête et tu les appelles autrement dans ton code. Faut-il y voir
une relation ?

En ce jour mémorable du mercredi 20/06/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour,

J'ai un soucis une requête ajout.
J'ai un produit qui a plusieurs accessoires pour éviter lors de la création
d'un nouveau produit similaire de réatribuer tous les accessoires à ce
produit, je souhaite dupliquer les accessoires du produit A vers le produit
B.

Pour cela j'ai créé un requête ajout qui fonctionne bien quand je la
déclenche manuellement.

Par contre quand je la déclenche par l'intermédiaire d'un formulaire, rien
de marche... je comprends pas

Voici ma requête d'ajout:

PARAMETERS A Long, B Long;
INSERT INTO contient ( Ref_prod_fini, Ref_accessoire, Largeur_accessoire,
Longueur_accessoire, Nb_unite )
SELECT [B] AS Expr1, contient.Ref_accessoire, contient.Largeur_accessoire,
contient.Longueur_accessoire, contient.Nb_unite
FROM contient
WHERE (((contient.Ref_prod_fini)=[A]));


A est la clé du produit à partir duquel je souhaite copier les accessoires
B est la clé du produit à qui je souhaite attribuer les accessoires de A

Mon code pour activer la requête est le suivant

Dim req As QueryDef
Dim db As Database
Set db = CurrentDb
Set req1 = db.QueryDefs("Transposition accessoires")
req1.Parameters![p] = Me.Ref_prod_fini
req1.Parameters![C] = Me.Choix
req1.Execute

le code fonctionne sans indiquer d'erreur et les données sont ajoutés dans
la table "contient" mais le champ "ref_prod_fini" qui devrait avoir la
valeur B est vide.... je comprends pas.

D'avance merci pour votre aide.


Baptiste


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info



--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info