IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Insérer chiffres virgules en vba [AC-2019]


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 237
    Points : 99
    Points
    99
    Par défaut Insérer chiffres virgules en vba
    Bonjour à tous,

    Je vous sollicite car je coince sur l'insertion via vba de chiffres à virgules. J'ai essayé de m'inspirer de cette discussion https://www.developpez.net/forums/d9...e-requete-sql/ mais rien n'y fait ...

    Je construis la requête SQL en concaténant des variable et je souhaite garder 1 valeur en paramètre celle contenant mes chiffres à virgules, c'est "curBpuItemPrix"

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim rs As DAO.Recordset
    Dim db As DAO.Database
    Dim oQdf As DAO.QueryDef
    Set db = CurrentDb
    ...
            qryInserBpuItems = "PARAMETERS curBpuItemPrix CURRENCY" & _
                                " INSERT INTO tblTravMinutes (tmiChiffrageFK, tmiMarcheTypeFK, tmiLot, tmiItemRubrique, tmiItemCode, tmiItemLibelle, tmiItemUniteFK, tmiItemUniteLibelle, tmiItemPrixUnitaire, tmiItemTravauxType)" & _
                                " VALUES (" & lgTblTravChiffrageMaxPk & ", " & sngMarcheTypeFK & ", " & sglLot & ", '" & strRubrique & "'" & ", '" & strBpuItemCode & "'" & ", '" & strBpuItemLibelle & "'" & ", " & strBpuItemUniteFK & ", '" & strBpuItemUniteLibelle & "'" & ", " & "curBpuItemPrix" & ", '" & strBpuItemTravType & "'" & ")"
            Debug.Print qryInserBpuItems
     
            Set oQdf = db.QueryDefs("qryInserBpuItems")
            oQdf.Parameters("curBpuItemPrix") = CCur(rs!bblPrixUnitaire)
    Le message d'erreur est : Elément non trouvé dans cette collection à la ligne Set oQdf = db.QueryDefs("qryInserBpuItems")

    le 1er Debug.Print renvoie :
    10
    le 2ième Debug.Print renvoie :
    PARAMETERS curBpuItemPrix CURRENCY INSERT INTO tblTravMinutes (tmiChiffrageFK, tmiMarcheTypeFK, tmiLot, tmiItemRubrique, tmiItemCode, tmiItemLibelle, tmiItemUniteFK, tmiItemUniteLibelle, tmiItemPrixUnitaire, tmiItemTravauxType) VALUES (21, 3, 5, '', '21.05.376', 'Fourniture, pose et retrait des blindages lourds - spécial tranchées réseau', 4, 'm2', curBpuItemPrix, 'EXP')


    Merci de votre aide

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Quand tu passes par du code SQL, il faut que la virgule (le séparateur de décimales) soit un point. Habituellement si ton champ source est un nombre (au sens de Access) cela ne pose pas vraiment de problème et Access s'occupe de tout.

    Si ta source n'est pas un nombre ou si Access se croise les yeux tu peux utiliser replace(). Ça donne quelque chose comme replace(curBpuItemPrix, ",", ".").

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 237
    Points : 99
    Points
    99
    Par défaut
    Bonjour,

    Merci marot_r pour ta réponse que j'ai un peu adapté.

    Ma question initiale venait donc d'une incompréhension dans le fonctionnement d'Access, en effet je pensais que si j'injectais des chiffres avec un point à la place d'une virgule mon résultat dans Access serait un chiffre avec un point et pas une virgule donc incompatibilité de type avec mon champ de destination qui lui est un réel. La réalité est différente si j'injecte un chiffre décimal avec un point comme séparateur, il apparaît avec une virgule dans Access, j'ai donc modifié la requête initiale en convertissant en string le décimal à injecter le code devient alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    qryInserBpuItems = "INSERT INTO tblTravMinutes (tmiChiffrageFK, tmiMarcheTypeFK, tmiLot, tmiItemRubrique, tmiItemCode, tmiItemLibelle, tmiItemUniteFK, tmiItemUniteLibelle, tmiItemPrixUnitaire, tmiItemTravauxType)" & _
                                " VALUES (" & lgTblTravChiffrageMaxPk & ", " & sngMarcheTypeFK & ", " & sglLot & ", '" & strRubrique & "'" & ", '" & strBpuItemCode & "'" & ", '" & strBpuItemLibelle & "'" & ", " & strBpuItemUniteFK & ", '" & strBpuItemUniteLibelle & "'" & ", " & Str(curBpuItemPrix) & ", '" & strBpuItemTravType & "'" & ")"
     
    db.Execute (qryInserBpuItems)
    et le résultat est tip top

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Chiffres significatifs en VBA
    Par peofofo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/07/2008, 09h10
  2. Chiffres à virgule
    Par Corinne dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 29/07/2007, 09h13
  3. Chiffres à virgule : points et virgules ?
    Par poulette3000 dans le forum Langage
    Réponses: 11
    Dernier message: 23/07/2007, 12h23
  4. Rand avec chiffre à virgule
    Par Mikiman dans le forum Langage
    Réponses: 2
    Dernier message: 23/09/2006, 14h56
  5. Problème de format pour des chiffres à virgule
    Par bob75000 dans le forum Access
    Réponses: 5
    Dernier message: 21/07/2006, 10h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo