Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 14 sur 14
  1. #1
    Futur Membre du Club
    Homme Profil pro Lorian Agnès
    Inscrit en
    octobre 2011
    Messages
    61
    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 : 61
    Points : 19
    Points
    19

    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!

  2. #2
    Expert Confirmé Sénior Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    juillet 2007
    Messages
    3 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : juillet 2007
    Messages : 3 012
    Points : 4 371
    Points
    4 371

    Par défaut

    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 !

  3. #3
    Futur Membre du Club
    Homme Profil pro Lorian Agnès
    Inscrit en
    octobre 2011
    Messages
    61
    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 : 61
    Points : 19
    Points
    19

    Par défaut

    Bonjour Richard,

    Oui mon champ cible comporte les mêmes propriétés que le champs source

  4. #4
    Expert Confirmé Sénior Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    juillet 2007
    Messages
    3 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : juillet 2007
    Messages : 3 012
    Points : 4 371
    Points
    4 371

    Par défaut

    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 !

  5. #5
    Futur Membre du Club
    Homme Profil pro Lorian Agnès
    Inscrit en
    octobre 2011
    Messages
    61
    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 : 61
    Points : 19
    Points
    19

    Par défaut

    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?

  6. #6
    Expert Confirmé Sénior Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    juillet 2007
    Messages
    3 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : juillet 2007
    Messages : 3 012
    Points : 4 371
    Points
    4 371

    Par défaut

    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 !

  7. #7
    Futur Membre du Club
    Homme Profil pro Lorian Agnès
    Inscrit en
    octobre 2011
    Messages
    61
    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 : 61
    Points : 19
    Points
    19

    Par défaut

    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

  8. #8
    Expert Confirmé Sénior Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    juillet 2007
    Messages
    3 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : juillet 2007
    Messages : 3 012
    Points : 4 371
    Points
    4 371

    Par défaut

    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 !

  9. #9
    Futur Membre du Club
    Homme Profil pro Lorian Agnès
    Inscrit en
    octobre 2011
    Messages
    61
    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 : 61
    Points : 19
    Points
    19

    Par défaut

    ==> 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

    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)


    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à

  10. #10
    Expert Confirmé Sénior Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    juillet 2007
    Messages
    3 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : juillet 2007
    Messages : 3 012
    Points : 4 371
    Points
    4 371

    Par défaut

    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 !

  11. #11
    Futur Membre du Club
    Homme Profil pro Lorian Agnès
    Inscrit en
    octobre 2011
    Messages
    61
    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 : 61
    Points : 19
    Points
    19

    Par défaut

    ==> 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

  12. #12
    Expert Confirmé Sénior Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    juillet 2007
    Messages
    3 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : juillet 2007
    Messages : 3 012
    Points : 4 371
    Points
    4 371

    Par défaut

    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 !

  13. #13
    Futur Membre du Club
    Homme Profil pro Lorian Agnès
    Inscrit en
    octobre 2011
    Messages
    61
    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 : 61
    Points : 19
    Points
    19

    Par défaut

    Euh je travaille sur Access 2010, est-ce compatible ?

  14. #14
    Expert Confirmé Sénior Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    juillet 2007
    Messages
    3 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : juillet 2007
    Messages : 3 012
    Points : 4 371
    Points
    4 371

    Par défaut

    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 !

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •