Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2011, 12h50   #1
Futur Membre du Club
 
Homme Lorian Agnès
Inscription : octobre 2011
Messages : 48
Détails du profil
Informations personnelles :
Nom : Homme Lorian Agnès
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2011
Messages : 48
Points : 17
Points : 17
Par défaut Nombre décimal INSERT INTO

Bonjour à tous,

J'ai beau parcourir le forum, je ne trouve pas de solution simple pour faire passer dans ma requête sql un nombre à décimal.
Par exemple une TVA à 19,6 % ou 5,5 la requête ne marche pas, car l'ordinateur interprète 2 valeurs au lieu d'une si j'ai bien compris (19 et 6 pour 19,6)

Comment faire simplement pour que ma requête transmette ce nombre décimal?

Merci d'avance!
Lologolas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 16h55   #2
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 184
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 184
Points : 2 814
Points : 2 814
Bonjour Lologolas,

Ton champ cible comporte bien des décimales ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 18h52   #3
Futur Membre du Club
 
Homme Lorian Agnès
Inscription : octobre 2011
Messages : 48
Détails du profil
Informations personnelles :
Nom : Homme Lorian Agnès
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2011
Messages : 48
Points : 17
Points : 17
Bonjour Richard,

Oui mon champ cible comporte les mêmes propriétés que le champs source
Lologolas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 19h47   #4
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 184
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 184
Points : 2 814
Points : 2 814
Peux-tu poster 3 lignes de ta table source et les 3 lignes de ta table cible résultantes du INSERT TO ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 09h44   #5
Futur Membre du Club
 
Homme Lorian Agnès
Inscription : octobre 2011
Messages : 48
Détails du profil
Informations personnelles :
Nom : Homme Lorian Agnès
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2011
Messages : 48
Points : 17
Points : 17
O.K

Voici mon INSERT INTO :

Code :
1
2
3
4
5
6
Dim strSql As String
 
strSql = "INSERT INTO COMMANDE(NUM_CLIENT, NUM_DEVIS, TITRE_OUVRAGE, QUANTITE_OUVRAGE, HAUTEUR_OUVRAGE, LARGEUR_OUVRAGE, PAGINATION_OUVRAGE, TYPE_BLOC_OUVRAGE, CONSTITUTION_OUVRAGE, GARDE_OUVRAGE, TYPE_GARDE_OUVRAGE, GRAMMAGE_OUVRAGE, COUVERT_OUVRAGE, TM_COUV_OUVRAGE, MARQ_COUV_OUVRAGE, CARTON_OUVRAGE, CONDIT_PAQ_OUVRAGE, CONDIT_CAI_OUVRAGE, PROP_PRIX_OUVRAGE, CONCEPT_OUVRAGE, FOURNI_GARD_OUVRAGE, FOURNI_COUV_OUVRAGE, QT1_NB_CAHIER, QT2_NB_CAHIER, QT3_NB_CAHIER, NB1_PAGE_CAHIER, NB2_PAGE_CAHIER, NB3_PAGE_CAHIER, DATE_CREA_OUVRAGE, TVA_OUVRAGE, COMMENT_OUVRAGE)" & _
         "VALUES ('" & CLIENT_NUM_CLIENT & "', '" & NUM_DEVIS & "', '" & TITRE_OUVRAGE & "', '" & QUANTITE_OUVRAGE & "', '" & HAUTEUR_OUVRAGE & "', '" & LARGEUR_OUVRAGE & "', '" & PAGINATION_OUVRAGE & "', '" & TYPE_BLOC_OUVRAGE & "', '" & CONSTITUTION_OUVRAGE & "', '" & GARDE_OUVRAGE & "', '" & TYPE_GARDE_OUVRAGE & "', '" & GRAMMAGE_OUVRAGE & "', '" & COUVERT_OUVRAGE & "', '" & TM_COUV_OUVRAGE & "', '" & MARQ_COUV_OUVRAGE & "', '" & CARTON_OUVRAGE & "', '" & CONDIT_PAQ_OUVRAGE & "', '" & CONDIT_CAI_OUVRAGE & "', '" & PROP_PRIX_OUVRAGE & "', '" & CONCEPT_OUVRAGE & "', '" & FOURNI_GARD_OUVRAGE & "', '" & FOURNI_COUV_OUVRAGE & "', '" & QT1_NB_CAHIER & "', '" & QT2_NB_CAHIER & "', '" & QT3_NB_CAHIER & "', '" & NB1_PAGE_CAHIER & "', '" & NB2_PAGE_CAHIER & "', '" & NB3_PAGE_CAHIER & "', '" & DATE_CREA_OUVRAGE & "', '" & TVA_OUVRAGE & "', '" & COMMENT_OUVRAGE & "');"
 
DoCmd.RunSQL strSql
Les 3 lignes de la table source et table destination tu les veux sous quelle forme?
Lologolas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 10h04   #6
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 184
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 184
Points : 2 814
Points : 2 814
Bonjour Lologolas,

Citation:
Envoyé par Lologolas
Les 3 lignes de la table source et table destination tu les veux sous quelle forme?
==> copier/coller de l'affichage des deux tables.

C'est donc un INSERT INTO avec un code SQL fabriqué par concaténation de chaînes de caractères. Il y a, sans doute, une erreur dans la chaîne de caractères résultantes : tu pourrais afficher ta variable dans un "msgbox" pour contrôler qu'elle est correctement fabriquée.

Un autre test consisterait à passer par une "requête ajout", via l'assistant, pour, éventuellement, éliminer ton diagnostic
Citation:
Envoyé par Lologolas
Par exemple une TVA à 19,6 % ou 5,5 la requête ne marche pas, car l'ordinateur interprète 2 valeurs au lieu d'une si j'ai bien compris (19 et 6 pour 19,6)
car Access sait correctement traiter un INSERT INTO d'une valeur comportant des décimales (c'est la moindre des choses).
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 10h35   #7
Futur Membre du Club
 
Homme Lorian Agnès
Inscription : octobre 2011
Messages : 48
Détails du profil
Informations personnelles :
Nom : Homme Lorian Agnès
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2011
Messages : 48
Points : 17
Points : 17
Je n'arrive pas à faire le copier/coller de l'affichage des deux tables,

Je vais passer par screenshot

Propriété du champs :
http://imageshack.us/photo/my-images/444/donnesj.png/

Propriété du champs :
http://imageshack.us/photo/my-images...9/donnes2.png/

relations :
http://imageshack.us/photo/my-images...alisation.png/

Je précise que je les ai mis au format texte en attendant pour qu'il ne fasse pas planter ma requête
Lologolas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 10h58   #8
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 184
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 184
Points : 2 814
Points : 2 814
Citation:
Envoyé par Lologolas
Je précise que je les ai mis au format texte en attendant pour qu'il ne fasse pas planter ma requête
==> c'est justement le format qui fait planter la requête qui est intéressant.


D'autre part, as-tu effectué ce test
Citation:
Envoyé par Richard_35
Un autre test consisterait à passer par une "requête ajout", via l'assistant .../...

Enfin, tes relations ne sont pas correctes : si la clé primaire de DEVIS est NUM_DEVIS et NUM_CLIENT, alors la liaison avec COMMANDE doit être créée avec ces deux champs (mais, rien à voir avec ton problème d'origine).
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 11h18   #9
Futur Membre du Club
 
Homme Lorian Agnès
Inscription : octobre 2011
Messages : 48
Détails du profil
Informations personnelles :
Nom : Homme Lorian Agnès
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2011
Messages : 48
Points : 17
Points : 17
Citation:
==> c'est justement le format qui fait planter la requête qui est intéressant.
Oui, je me doute bien, j'ai essayé type Numérique avec pour format Nombre général => marche pas quand il y a une virgule, standard => pareil et enfin pourcentage => pareil

J'ai laissé à chaque fois le champs décimal en AUTO

Toujours le même problème

Citation:
D'autre part, as-tu effectué ce test
Citation:
Envoyé par Richard_35
Un autre test consisterait à passer par une "requête ajout", via l'assistant .../...
J'avais déjà essayé mais ça ne me convenais pas, le insert into etant beaucoup plus simple théoriquement(selon mes compétences et connaissances)

Citation:

Enfin, tes relations ne sont pas correctes : si la clé primaire de DEVIS est NUM_DEVIS et NUM_CLIENT, alors la liaison avec COMMANDE doit être créée avec ces deux champs (mais, rien à voir avec ton problème d'origine).
Non, non elle correspondent bien à ce que je veux, les deux tables sont reliées à ma table client (qui n'est pas affichée sur le screenshot), tout est ok de ce coté là
Lologolas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 11h47   #10
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 184
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 184
Points : 2 814
Points : 2 814
Citation:
Envoyé par Lologolas
Oui, je me doute bien, j'ai essayé type Numérique avec pour format Nombre général => marche pas quand il y a une virgule, standard => pareil et enfin pourcentage => pareil
==> le format n'intervient pas dans ton souci : ce n'est qu'un artifice d'affichage. Il faut que tes deux champs soient "Numérique" de type "Réel simple" ou "Réel double" (tu peux laisser en décimal AUTO).


Citation:
Envoyé par Lologolas
J'avais déjà essayé mais ça ne me convenais pas .../...
==> le but est de savoir si INSERT INTO fonctionne via l'assistant. S'il fonctionne (avec des données de test, par exemple), cela voudra dire que tu fabrique mal ta chaîne de caractères (' ou " mal placé, par exemple).


Citation:
Envoyé par Lologolas
Non, non elle correspondent bien à ce que je veux, les deux tables sont reliées à ma table client (qui n'est pas affichée sur le screenshot), tout est ok de ce coté là
==> je maintiens qu'il y a un problème de relation :
  • soit NUM_DEVIS est en n° auto : la clé primaire de DEVIS doit être NUM_DEVIS seulement, et la liaison doit se faire de NUM_DEVIS vers NUM_DEVIS ;
  • soit NUM_DEVIS n'est pas en n° auto : la clé primaire de DEVIS doit être NUM_DEVIS et NUM_CLIENT et la liaison doit se faire de NUM_DEVIS/NUM_CLIENT vers NUM_DEVIS/NUM_CLIENT.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 16h40   #11
Futur Membre du Club
 
Homme Lorian Agnès
Inscription : octobre 2011
Messages : 48
Détails du profil
Informations personnelles :
Nom : Homme Lorian Agnès
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2011
Messages : 48
Points : 17
Points : 17
Citation:
==> le format n'intervient pas dans ton souci : ce n'est qu'un artifice d'affichage. Il faut que tes deux champs soient "Numérique" de type "Réel simple" ou "Réel double" (tu peux laisser en décimal AUTO).
C'est fait, mes deux champs sont Numérique de type réel double, ça met toujours le même problème, mais j'ai trouvé une petite parade en mettant une valeur par défaut dans le champ suivant et en retirant la tva de la requête insert
Lologolas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 16h48   #12
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 184
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 184
Points : 2 814
Points : 2 814
Tu ne devrais pas avoir besoin de parade : Access sait gérer les décimales, en général, donc, y compris pour les INSERT INTO.

Peux-tu poster une petite base au format 2003 (.mdb), avec ta table source (comportant quelques lignes à ajouter à ta table cible) et ta table cible (en t'étant assurer que tu as le problème objet de ce fil) ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 11h57   #13
Futur Membre du Club
 
Homme Lorian Agnès
Inscription : octobre 2011
Messages : 48
Détails du profil
Informations personnelles :
Nom : Homme Lorian Agnès
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2011
Messages : 48
Points : 17
Points : 17
Euh je travaille sur Access 2010, est-ce compatible ?
Lologolas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 12h10   #14
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 184
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 184
Points : 2 814
Points : 2 814
Bonjour Lologolas,

Tu devrais avoir un "Enregistrer sous..." en format 2003, non ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h49.


 
 
 
 
Partenaires

Hébergement Web