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

VB 6 et antérieur Discussion :

probleme de virgule dans la mise à jour d'une base de donnée


Sujet :

VB 6 et antérieur

  1. #1
    KAF
    KAF est déconnecté
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut probleme de virgule dans la mise à jour d'une base de donnée
    j'ai créé une feuille pour mettre a jour les données d'une base de données access. 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
    14
    15
    16
    17
    18
    Dim DB As Database
    Dim Req As QueryDef
     
    Set Req = DB.CreateQueryDef("", "UPDATE Zones SET " & _
    "  DateInit =" & DateInit.Text & _
    ", DateFin =" & DateFinale.Text & _
    ", SA =" & SA.Text & _
    ", PopU =" & CDbl(Pop.Text) & _
    ", NatInitU =" & CDbl(NatInit.Text) & _
    ", NatFinU =" & CDbl(NatFin.Text) & _
    ", NatIFU =" & CDbl(NatIF.Text) & _
    ", NatPIU =" & CDbl(NatPI.Text) & _
    ", MortInitU =" & CDbl(MortInit.Text) & _
    ", MortFinU =" & CDbl(MortFin.Text) & _
    ", MortPIU =" & CDbl(MortPI.Text) & _
    ", MortIFU =" & CDbl(MortIF.Text) & _
    "  WHERE NomZone=" & "'" & Trim(NomZone.Text) & "'")
    Req.Execute
    ce code marche tant que je tape des entiers dans les zones textes. mais des que je tape par exemple 10,5 dans une zone texte une erreur se produit. merci de m'aider

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    dans la requête SQL il faut remplacer les , par des .

    utilise par exemple cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function mfDbl(st As String)
     mfDbl = Replace(CDbl(st), ",", ".")
    End Function
    et modifie ton code ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Dim DB As Database
    Dim Req As QueryDef
     
    Set Req = DB.CreateQueryDef("", "UPDATE Zones SET " & _
    " DateInit =" & DateInit.Text & _
    ", DateFin =" & DateFinale.Text & _
    ", SA =" & SA.Text & _
    ", PopU =" & mfDbl(Pop.Text) & _
    ", NatInitU =" & mfDbl(NatInit.Text) & _
    ", NatFinU =" & mfDbl(NatFin.Text) & _
    ", NatIFU =" & mfDbl(NatIF.Text) & _
    ", NatPIU =" & mfDbl(NatPI.Text) & _
    ", MortInitU =" & mfDbl(MortInit.Text) & _
    ", MortFinU =" & mfDbl(MortFin.Text) & _
    ", MortPIU =" & mfDbl(MortPI.Text) & _
    ", MortIFU =" & mfDbl(MortIF.Text) & _
    " WHERE NomZone=" & "'" & Trim(NomZone.Text) & "'")
    Req.Execute

  3. #3
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Hello!
    Oui, c'est un problème de séparateur numérique.
    Une autre solution, qui a été posté il y a quelques temps sur ce forum, est carrément de contrôler la saisie dans les check-box, pour que la touche "," soit directement transformée en ".", au cours de la frappe.
    Si j'ai le temps, je ferai une petite recherche sur le forum pour voir si je le retrouve.

  4. #4
    KAF
    KAF est déconnecté
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut probleme de virgule dans la mise à jour d'une base de donnée
    ca marche. merci pour la reponse

  5. #5
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Alors tu as oublié de mettre le tag ...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    Une autre solution est de stocker le séparateur décimal dans une variable à l'ouverture du programme et puis de le mettre à ".". A la fermeture du programme, il suffit de remettre le séparateur décimal à sa valeur initiale.

  7. #7
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par agro
    Une autre solution est de stocker le séparateur décimal dans une variable à l'ouverture du programme et puis de le mettre à ".". A la fermeture du programme, il suffit de remettre le séparateur décimal à sa valeur initiale.
    Pas d'accord, si tous les développeurs d'appli font pareil, ça va donner un beau boxon ...
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 53
    Points : 59
    Points
    59
    Par défaut
    désolé ami Xo

    c vrai mes appli datent du siècle dernier, et elles vivent toujours
    mes nombres (dument vérifiés) sont enregistrés en NOMBRES ENTIERS, avec une zone complémentaire pour la position de la virgule

    fini les erreurs base 2, base 10 ...

    le séparateur ... bof , ou . out pourquoi pas *
    pour mon appli c un non numérique parmi les numérique (chut, il doit etre unique... )

    c vrai que je fais du code le plus bas possible ...

Discussions similaires

  1. Mise à Jour d'une base de données
    Par Kalvin_20 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 28/05/2008, 16h56
  2. Miseà Jour d'une base de données
    Par Kalvin_20 dans le forum VBA Access
    Réponses: 8
    Dernier message: 28/05/2008, 13h25
  3. Mise à jour d'une base de données
    Par JeanMarc_T2k dans le forum Services
    Réponses: 1
    Dernier message: 01/02/2008, 22h48
  4. Réponses: 7
    Dernier message: 13/08/2007, 13h15
  5. mise à jour d'une base de données
    Par flo83 dans le forum ASP
    Réponses: 6
    Dernier message: 12/06/2005, 20h27

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