Visual basic erreur 3144 quand chiffre décimal

Résolu
Jonathan -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai une erreur uniquement quand un chiffre décimal.

mon code est :

Dim base As Database: Dim requete As String

If (Ref_Couleur.Value <> "" And IsNumeric(qts_maj.Value)) Then
Set base = Application.CurrentDb
requete = "Update Peintures SET Quantité = " & qts_maj.Value & " WHERE Code_couleur='" & Ref_Couleur.Value & ";"
base.Execute requete

MsgBox "Les stocks pour la référence : " & Ref_Couleur.Value & ", ont correctement été mis à jour pour une quantité désormais égale à : " & qts_maj.Value

Set base = Nothing

End If

Merci de votre aide
A voir également:

5 réponses

Utilisateur anonyme
 
Bonjour,
Sans doute un problème d'interprétation de la décimale : en français c'est la virgule qui sert de séparateur ; en anglais c'est le point.
Et dans Acces, c'est la notation anglaise qu'il faut utiliser.
0
Jonathan
 
J'ai tenté de mettre un point au lieu de la virgule, mais Acces ne me le permette pas.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
une erreur quand quoi contient un chiffre décimal?
une erreur à quelle ligne de code?
merci d'utiliser les balises de code quand tu partages du code, en tenant compte que VBA est du basic: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
Jonathan
 
Bonjour,

J'ai une erreur uniquement quand un chiffre décimal.

mon code est :

Dim base As Database: Dim requete As String

If (Ref_Couleur.Value <> "" And IsNumeric(qts_maj.Value)) Then
Set base = Application.CurrentDb
requete = "Update Peintures SET Quantité = " & qts_maj.Value & " WHERE Code_couleur='" & Ref_Couleur.Value & ";"
base.Execute requete

MsgBox "Les stocks pour la référence : " & Ref_Couleur.Value & ", ont correctement été mis à jour pour une quantité désormais égale à : " & qts_maj.Value

Set base = Nothing

End If


Débogage Acces me dit qu'il y a un problème à la ligne
base.Execute requete


Selon mes recherches ça serait la valeur
qts_maj 
qui est en format décimal (quantité en kg) qui serait vu comme deux éléments différent. Je ne trouve pas comme faire pour évité ça, car access ne prends pas l'entrée avec un point dans ma table.

Merci de votre aide
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Jonathan
 
peux-tu écrire des phrases complètes? que signifie "quand un chiffre décimal"?

examine le contenu de la variable
requete
, et partage le ici.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
pour apprendre et comprendre, fais également des essais de requêtes UPDATE directement dans Access, sans utiliser du VBA.
0
Jonathan > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Si j'ai un nombre entier tout marche parfaitement, c'est quand j'ai un nombre décimal que ça plante. Donc, je crois que c'est un problème lié au format, mais je ne trouve pas pour le moment. C'est pour ça que j'expose mon problème ici.

Merci de votre aide !
0
Jonathan > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Voilà je te mets une ligne de ma table Peinture.
Code_couleur : 009/10880
nom_couleur : CASHMERE
Quantité : 0,362
0
Jonathan
 
Finalement, j'ai changer mon séparateur décimal de mon système et tout c'est réglé. Il doit y avoir une autre solution, mais je ne l'ai pas trouver pour le moment. Si quelqu'un la trouve nous la partager.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
tu as beaucoup expliqué ce que tu pensais, et tu n'as pas donné le contenu exact de qts_maj.

il suffit sans doute de faire:
requete = "Update Peintures SET Quantité = " & replace(qts_maj.Value,",",".") _
      & " WHERE Code_couleur='" & Ref_Couleur.Value 

ou quelque chose de similaire
0
Jonathan > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Merci ! c'est exactement ça.
0
Jonathan
 
qts_maj = "Quantité" de la table Peinture - une "Quantité" inscrite dans une case du formulaire
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
quel est le texte dans qts_maj quand cela ne fonctionne pas?
pas à quoi cela sert ni ce que cela signifie: quel est sa valeur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Jonathan
 
0,341

mais, la commande que tu m'as donnée

replace(qts_maj.Value,",",".")


a résolut le problème, je crois que s'était visual basic qui ne prenais pas la donné comme une seul valeur étant donné la virgule en changeant la virgule en point ça résolut le problème.
Merci encore.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
si tu avais donné l'info dés le départ, tu aurais gagné du temps.
0