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

Requete qui stocke des résultats de form dans table

18 réponses
Avatar
Txl
Bonjour =E0 tous,

j'ai un form [frmrcptcommandefour] contenant un sousform
[sfrmrcptcommandefour] qui m'affiche des commandes fournisseurs dans
le form et le d=E9tail de ces commandes dans le sousform.

En bas du sousform j'ai des champs calcul=E9s qui me r=E9capitulent le
total de la commande, le montant recu aujourd'hui et le montant
restant =E0 recevoir.

je voudrais stocker la valeur recue sur cette op=E9ration dans une table
qui contient
date
commande
montant recu sur cette r=E9ception

J'ai fait une requete d'ajout mais bien evidemment ca ne marche pas,
que dois-je changer ?

INSERT INTO tblrcptcommande ( montant, [date], commande )
SELECT forms!frmrcptcommandefour!totrecpt AS Expr1, Now() AS Expr2,
forms!frmrcptcommandefour!refcommande AS Expr3;


Merci d'avance

8 réponses

1 2
Avatar
Eric
re,

Tu peux mettre une bd compactée au format A2000 et zippée sur cjoint
(http://cjoint.com/) avec le strict minimum pour résoudre ton pb si
l'info n'est pas secrète. puis coller le lien ici.

Txl a écrit :
Instruction SQL non valide, insert, delete bla bla bla attendus

totrecpt est bien un nombre à virgule (c'est un montant monétaire),
refcommande est un entier et la date ben c'est une date :)

Si seulement la syntaxe de access pouvait etre un peu moins pourrie je
n'aurais pas besoin de casser les pieds à tout le monde :)

En tout cas merci du coup de main.



re,

Mon lecteur me joue des tours :-(
Je reprends donc.

Essaies :

sSQL="Insert Into tblrcptcommande(montant, datercpt,commande) values(" _
& Replace(Forms!frmrcptcommandefour!totrecpt, ",", ".") & _
",#" & Format(Date, "mm/dd/yyyy") & "#," & _
Forms!frmrcptcommandefour!refcommande & ");"

Utilisation de la fonction Replace() dans le cas où totrecpt est un
nombre avec décimales. En US(langage SQL), le séparateur décimal est le
point et non la virgule.refcommande est supposé être un champ numérique.

Si refcommande est de type Texte alors modifies comme suit :

sSQL="Insert Into tblrcptcommande(montant, datercpt,commande) values(" _
& Replace(Forms!frmrcptcommandefour!totrecpt, ",", ".") & _
",#" & Format(Date, "mm/dd/yyyy") & "#'," & _
Forms!frmrcptcommandefour!refcommande & "');"

PS : les dates doivent être mises au format US (soit mm/dd/yyyy) dans
l'instruction SQL.

Eric a écrit :

Bonjour,
Essaies :
sSQL="Insert Into tblrcptcommande(montant, datercpt,commande) values(" _
& Replace(Forms!frmrcptcommandefour!totrecpt, ",", ".") & _
",#" & Format(Date, "mm/dd/yyyy") & "#," & _
Forms!frmrcptcommandefour!refcommande & ");"


--
A+
Erichttp://www.mpfa.info/
Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl=fr






--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Avatar
Txl
Salut,

J'ai mis une version expurgée sur http://cjoint.com/?dqn0m0pp0B

c'est le form frmrcptcommandefour qui doit fournir les infos et qui
lance la requete rqaddrcptcommandefour et le résultat doit etre stocké
dans la table tblrcptcommandefour.

merci d'avance


re,

Tu peux mettre une bd compactée au format A2000 et zippée sur cjoint
(http://cjoint.com/) avec le strict minimum pour résoudre ton pb si
l'info n'est pas secrète. puis coller le lien ici.

Txl a écrit :





> Instruction SQL non valide, insert, delete bla bla bla attendus

> totrecpt est bien un nombre à virgule (c'est un montant monétaire),
> refcommande est un entier et la date ben c'est une date :)

> Si seulement la syntaxe de access pouvait etre un peu moins pourrie je
> n'aurais pas besoin de casser les pieds à tout le monde :)

> En tout cas merci du coup de main.

>> re,

>> Mon lecteur me joue des tours :-(
>> Je reprends donc.

>> Essaies :

>> sSQL="Insert Into tblrcptcommande(montant, datercpt,commande) values (" _
>>       & Replace(Forms!frmrcptcommandefour!totrecpt, ",", ".") & _
>>       ",#" & Format(Date, "mm/dd/yyyy") & "#," & _
>>       Forms!frmrcptcommandefour!refcommande & ");"

>> Utilisation de la fonction Replace() dans le cas où totrecpt est un
>> nombre avec décimales. En US(langage SQL), le séparateur décimal est le
>> point et non la virgule.refcommande est supposé être un champ num érique.

>> Si refcommande est de type Texte alors modifies comme suit :

>> sSQL="Insert Into tblrcptcommande(montant, datercpt,commande) values (" _
>>       & Replace(Forms!frmrcptcommandefour!totrecpt, ",", ".") & _
>>       ",#" & Format(Date, "mm/dd/yyyy") & "#'," & _
>>       Forms!frmrcptcommandefour!refcommande & "');"

>> PS : les dates doivent être mises au format US (soit mm/dd/yyyy) dan s
>> l'instruction SQL.

>> Eric a écrit :

>>> Bonjour,
>>> Essaies :
>>> sSQL="Insert Into tblrcptcommande(montant, datercpt,commande) value s(" _
>>>      & Replace(Forms!frmrcptcommandefour!totrecpt, ",", ".") & _
>>>      ",#" & Format(Date, "mm/dd/yyyy") & "#," & _
>>>      Forms!frmrcptcommandefour!refcommande & ");"
>> --
>> A+
>> Erichttp://www.mpfa.info/
>> Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl =fr

--
A+
Erichttp://www.mpfa.info/
Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl=f r


Avatar
Eric
re,

Bien que tu n'utilises pas les infos qu'on te donne, puisque tu appelles
une requête Action enregistrée, je n'ai pas de problème lorsque je
clique sur le bouton Valider en bas du formulaire sans rien changer aux
données affichées.
J'ai juste les messages d'avertissement de l'ajout d'un enregistrement
standard d'Access ("Vous allez ajouter une ligne ...") et dans la table
tblrcptcommande le nouvel enregistrement est inscrit.

PS : dans la bd liée, il n'y a pas de table tblrcptcommandefour


Txl a écrit :
Salut,

J'ai mis une version expurgée sur http://cjoint.com/?dqn0m0pp0B

c'est le form frmrcptcommandefour qui doit fournir les infos et qui
lance la requete rqaddrcptcommandefour et le résultat doit etre stocké
dans la table tblrcptcommandefour.

merci d'avance


re,

Tu peux mettre une bd compactée au format A2000 et zippée sur cjoint
(http://cjoint.com/) avec le strict minimum pour résoudre ton pb si
l'info n'est pas secrète. puis coller le lien ici.

Txl a écrit :





Instruction SQL non valide, insert, delete bla bla bla attendus
totrecpt est bien un nombre à virgule (c'est un montant monétaire),
refcommande est un entier et la date ben c'est une date :)
Si seulement la syntaxe de access pouvait etre un peu moins pourrie je
n'aurais pas besoin de casser les pieds à tout le monde :)
En tout cas merci du coup de main.
re,
Mon lecteur me joue des tours :-(
Je reprends donc.
Essaies :
sSQL="Insert Into tblrcptcommande(montant, datercpt,commande) values(" _
& Replace(Forms!frmrcptcommandefour!totrecpt, ",", ".") & _
",#" & Format(Date, "mm/dd/yyyy") & "#," & _
Forms!frmrcptcommandefour!refcommande & ");"
Utilisation de la fonction Replace() dans le cas où totrecpt est un
nombre avec décimales. En US(langage SQL), le séparateur décimal est le
point et non la virgule.refcommande est supposé être un champ numérique.
Si refcommande est de type Texte alors modifies comme suit :
sSQL="Insert Into tblrcptcommande(montant, datercpt,commande) values(" _
& Replace(Forms!frmrcptcommandefour!totrecpt, ",", ".") & _
",#" & Format(Date, "mm/dd/yyyy") & "#'," & _
Forms!frmrcptcommandefour!refcommande & "');"
PS : les dates doivent être mises au format US (soit mm/dd/yyyy) dans
l'instruction SQL.
Eric a écrit :
Bonjour,
Essaies :
sSQL="Insert Into tblrcptcommande(montant, datercpt,commande) values(" _
& Replace(Forms!frmrcptcommandefour!totrecpt, ",", ".") & _
",#" & Format(Date, "mm/dd/yyyy") & "#," & _
Forms!frmrcptcommandefour!refcommande & ");"


--
A+
Erichttp://www.mpfa.info/
Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




--
A+
Erichttp://www.mpfa.info/
Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl=fr






--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Avatar
Eric
re,

Je viens de voir que le montant réceptionné ne s'inscrit pas.
Il faut modifier ta requête rqaddrcptcommandefour
Avatar
Eric
suite du message (Travailler sur un Mac avec un PC Virtuel ça perturbe
les messages)

Eric a écrit :
re,

Je viens de voir que le montant réceptionné ne s'inscrit pas.
Il faut modifier ta requête rqaddrcptcommandefour



et mettre :
Expr1: Formulaires!frmrcptcommandefour!sfrmrcptcommandefour.Form!totrecpt
Avatar
Txl
Bon, ca fait un nouveau problème plus rigolo :)

Si je passe par le form, bouton valider rien ne se passe, pas de
message d'erreur mais rien de crée dans la table tblrecptcommandefour

Si je lance la requete quand le form est fermé il me demande le
montant et la commande ET CA MARCHE, il crée l'enregistrement dans la
table.

Si je lance la requete quand le form est ouvert ca ne marche pas, pas
de message d'erreur mais pas d'enregistrement crée dans la table.

J'y comprend que dalle...

Avec ta dernière modif pour le moment le SQL est :

INSERT INTO tblrcptcommande ( montant, datercpt, commande )
SELECT Formulaires!frmrcptcommandefour!sfrmrcptcommandefour.Form!
totrecpt AS Expr1, Now() AS Expr2, forms!frmrcptcommandefour!
refcommande AS Expr3;


Merci d'avance


suite du message (Travailler sur un Mac avec un PC Virtuel ça perturbe
les messages)

Eric a écrit :

> re,

> Je viens de voir que le montant réceptionné ne s'inscrit pas.
> Il faut modifier ta requête rqaddrcptcommandefour

et mettre :
Expr1: Formulaires!frmrcptcommandefour!sfrmrcptcommandefour.Form!totrecpt


Avatar
Eric
Txl a écrit :

Si je passe par le form, bouton valider rien ne se passe, pas de
message d'erreur mais rien de crée dans la table tblrecptcommandefour



Tu cliques sur quel bouton Valider ?
Celui en bas du formulaire enregistre les valeurs dans la table
tblrcptcommande, la table *tblrcptcommandefour* n'existe pas
dans la bd.

Si je lance la requete quand le form est fermé il me demande le
montant et la commande ET CA MARCHE, il crée l'enregistrement dans la
table.



Ca n'a pas de sens de procéder ainsi

Si je lance la requete quand le form est ouvert ca ne marche pas, pas
de message d'erreur mais pas d'enregistrement crée dans la table.



As-tu ouvert la table tblrcptcommande ? Car l'enregistrement s'inscrit là.


Avec ta dernière modif pour le moment le SQL est :

INSERT INTO tblrcptcommande ( montant, datercpt, commande )
SELECT Formulaires!frmrcptcommandefour!sfrmrcptcommandefour.Form!
totrecpt AS Expr1, Now() AS Expr2, forms!frmrcptcommandefour!
refcommande AS Expr3;




Oui, c'est cela puisqu'il s'agit de ta requête enregistrée.

les bd : http://www.cijoint.fr/cjlink.php?file=cj200903/cijCKiwavW.zip
Avatar
Txl
Salut,

je me suisénervé dessus et d'un coup ca marche, rien compris de
spécial mais ca s'est mis à marcher.
Le bouton dans le form à le code suivant :

Private Sub valider_Click()
DoCmd.OpenQuery "rqaddrcptcommandefour", acNormal, acEdit
DoCmd.Close
End Sub


la requete rqaddrcptcommandefour à pour sql :

INSERT INTO tblrcptcommande ( montant, datercpt, commande )
SELECT Formulaires!frmrcptcommandefour!sfrmrcptcommandefour.Form!
totrecpt AS Expr1, Now() AS Expr2, forms!frmrcptcommandefour!
refcommande AS Expr3;

Et ca marche, donc je ne touche plus à rien :)

Merci a tous pour les idées et tuyaux.

A demain pour la suivante :)






Txl a écrit :



> Si je passe par le form, bouton valider rien ne se passe, pas de
> message d'erreur mais rien de crée dans la table tblrecptcommandefour

        Tu cliques sur quel bouton Valider ?
        Celui en bas du formulaire enregistre les valeurs dans la table
        tblrcptcommande, la table *tblrcptcommandefour* n'existe pas
        dans la bd.

> Si je lance la requete quand le form est fermé il me demande le
> montant et la commande ET CA MARCHE, il crée l'enregistrement dans la
> table.

        Ca n'a pas de sens de procéder ainsi

> Si je lance la requete quand le form est ouvert ca ne marche pas, pas
> de message d'erreur mais pas d'enregistrement crée dans la table.

        As-tu ouvert la table tblrcptcommande ? Car l'enregistrem ent s'inscrit là.



> Avec ta dernière modif pour le moment le SQL est :

> INSERT INTO tblrcptcommande ( montant, datercpt, commande )
> SELECT Formulaires!frmrcptcommandefour!sfrmrcptcommandefour.Form!
> totrecpt AS Expr1, Now() AS Expr2, forms!frmrcptcommandefour!
> refcommande AS Expr3;

        Oui, c'est cela puisqu'il s'agit de ta requête enregist rée.

les bd :http://www.cijoint.fr/cjlink.php?file=cj200903/cijCKiwavW.zip


1 2