Bonjour,
Pour simplifier l'exposé de mon problème j'ai créé une base de données ne contenant qu'une table avec un champ unique appelé Nombre (Numérique, taille réel double, format Euro)
J'ai crée un formulaire (également appelé test) ne contenant qu'une zone de saisie (zone texte appelée txtSaisie) et un bouton pour déclancher l'action DoCmd...
Le code est le suivant :
Lorsque je saisi un nombre entier, tout se passe bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub Commande2_Click() Dim dbBase As DAO.Database Dim rsttest As DAO.Recordset Set dbBase = CurrentDb Set rsttest = dbBase.OpenRecordset("Test") Dim Nombre As Double Nombre = CDbl(txtSaisie) DoCmd.RunSQL "INSERT INTO Test VALUES(" & Nombre & ");" 'Ne fonctionne pas DoCmd.RunSQL "INSERT INTO Test VALUES(10.12);" 'Fonctionne End Sub
Si je saisi un nombre avec décimale comme 10,12 par exemple j'ai un message d'erreur me disant
que le nombre de valeurs de la requête doit coïncider avec le nombre de champs destination.
Tout se passe comme si la virgule décimale était interprétée comme une instruction SQL.
Si j'utilise dans le code VBA 1.12 en lieu et place de ma variable tout se passe bien.
Merci par avance de m'apporter vos lumières.
Partager