Urgent: Pb. avec nb décimaux sous access

Résolu
wildmaus Messages postés 11 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 4 février 2005 - 11 août 2004 à 14:25
wildmaus Messages postés 11 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 4 février 2005 - 11 août 2004 à 18:22
Bonjour à tous, j'ai un pb. urgent à régler. Je télécharge des données d'une feuille excel ds ma base de données. Mon système se bloque lorsque j'essaye d'importer des nombres décimaux.
Voici la partie de mon programme qui bloque:

Dim Int_grad as Single

Int_grad = ClasseurXLS.Cells(i, 20) CodeSQl " SELECT [tb_grad].id FROM [tb_grad] WHERE [tb_grad].grad " & Int_grad & " "
Set rst = New ADODB.Recordset
rst.ActiveConnection = Cnn
rst.Source = CodeSQl
rst.LockType = adLockReadOnly
rst.CursorType = adOpenStatic
rst.Open

Int_id_grad = rst![id]

Ma table tb_grad contient des nombres décimaux (Single) (1 - 0,9 - 0,5 ...)

Quand Int_grad prend la valeur 0,9, j'aimerais connaitre l'id correspondant. J'ai à la place ce message d'erreur (traduit, car je n'utilise pas une version Access francaise):
"Syntaxfehler (virgule) dans la requete '[tb_grad].grad = 0,9'

Si quelqu'un pouvait me dépanner, je dois absolument résoudre ce pb. ds l'heure à venir.

Merci à tous pour votre temps

Wildmaus

13 réponses

ShadowWisp Messages postés 113 Date d'inscription jeudi 1 juillet 2004 Statut Membre Dernière intervention 25 août 2004 1
11 août 2004 à 17:48
ben après test c'est effectivement ca.. donc remplace tes virgules par des points dans tes nombres décimaux et ca devrait marcher

A.
3
devil_recycler Messages postés 170 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 8 février 2007
11 août 2004 à 14:33
tu as bien mis ds ta table que ct des nombres decimaux ?
si oui il faut que tu rajoutes des cotes :
CodeSQl " SELECT [tb_grad].id FROM [tb_grad] WHERE [tb_grad].grad '" & Int_grad &  "'"


>:) Devil_Recycler >:)
0
wildmaus Messages postés 11 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 4 février 2005
11 août 2004 à 14:46
j'ai essayé, mais ca ne marche pas. Mes nombres sont définis dans ma table en tant que Single, pourcentage. Les chiffres que j'importe sont des pourcentages, et mes nombres à l'intérieurs de ma table le sont aussi.
Je ne comprends pas d'où vient le pb.

merci de ton aide

Wildmaus
0
devil_recycler Messages postés 170 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 8 février 2007
11 août 2004 à 14:53
essaye de modifier ds ta bd avec decimal, pour voir si ca marche...

>:) Devil_Recycler >:)
0

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

Posez votre question
wildmaus Messages postés 11 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 4 février 2005
11 août 2004 à 15:04
Je viens de modifier ma table en suivant tes conseils, mais ca ne marche toujours pas. J'ai tjs le meme message d'erreur sans les cotes. Ca fonctionne pour la valeur 100% (= 1), mais par pour les autres. (90% = 0,9)Avec les cotes apparait un autre message d'erreur: "données incompatibles" ... et ca ne fonctionne ni pour Int_grad 1, ni pour Int_grad 0,9 :(
0
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 9
11 août 2004 à 15:13
Dans le pire des cas, tu peux toujours mettre ton champ en text, comme ca t sur que ca passera. Ensuite, tu fais juste un test pour vérifier que la donnée que tu importes est du bon format.
0
devil_recycler Messages postés 170 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 8 février 2007
11 août 2004 à 15:14
c bizarre....ds ta BD tu peux pas préciser decimal et pourcentage ???
sinon fais comme el_teedee

>:) Devil_Recycler >:)
0
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 9
11 août 2004 à 15:15
Ps : si tu as d'autre petits pb, notamment avec access deutsch :) tu peux me mp, je bosse dessus depuis 1 Mois 1/2

(genre des problemes de traduction de message d'erreur)
j'vous jure, des fois c'est trop compliqué a comprendre ;)
0
wildmaus Messages postés 11 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 4 février 2005
11 août 2004 à 15:31
J'explique exactement ce qui se passe...ma feuille excel contient des pourcentages, qui sont tantot 100%, 97%, 90% ...

Ma table [tb_grad] contient un champ nommé grad qui est défini en tant que décimal qui me renvoit les résultats en pourcentage. Ainsi quand je rentre 0,9, il me renvoit 90%

Quand je fais l'import de ma donnée (feuille excel), Int_grad me renvoit une valeur décimal, ce que je pense correct vu que j'ai la meme chose dans ma table.

Avec le code que j'ai donné plus haut, apparait le message d'erreur suivant: Syntaxfehler(Komma) in Abfrageausdruck '[tb_grad].grad = 0,5'

il ne reconnait pas la virgule. La valeur 0,5 ou aussi 50% est pourtant bien enregistré dans ma table...je suis perdu. :(

Pour ce qui est de ta methode el_teedee, je ne vois pas ce que je dois faire exactement. :question)
Je suis pour ma part depuis maintenant un an en allemagne :)

merci pour votre aide à tout les deux
wildmaus
0
ShadowWisp Messages postés 113 Date d'inscription jeudi 1 juillet 2004 Statut Membre Dernière intervention 25 août 2004 1
11 août 2004 à 15:53
Heu, j'ai pas trop le temps de vérifier la, mais je me demande si c'est pas plutot le SQL qui interprete mal ta virgule?

Tu as essayé de mettre un point a la place de ta virgule?

A.
0
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 9
11 août 2004 à 17:06
Bon,

J'ai déjà eu plein de pb avec les format, comme tout le monde d'ailleurs j'en suis sur. Le problème, s'il vient bien de là, c'est que le champ de ta table ACCESS attend une valeur d'un certain format. On est d'accord ? Et tu ne lui donne pas le format qu'il attend. !

Mettre ce champ (ACCESS) en text, permet ainsi de copier a coup sur ta donnée. (Je ne vois pas ce qui ne rentre pas dans un champ texte comme format ?) Bon. Concernant les tests, bah ché pas, j'avais pas trop réfléchis, mais tu n'as qu'à tester par la suite toutes les données de ton champ ACCESS toujours, une fois que l'import est terminé.

ah attend je vien peu etre de comprendr.
si tu importais tes données vers une table genre [tb_grad_Temp] avec un champ Temp de format text. Ensuite, et je pense que ca sera le cas, tes données dans cette table seront de cette forme :
x,y genre 0,9.
Peut etre ACCESS veut une donnée sous la forme O.9 avec un "."
dans ce cas tu remplace toutes les virgules par des points, puis tu copies [tb_grad_Temp]!Temp dans ta table cible.

pour convertir, utlise la fonction replace.
0
ShadowWisp Messages postés 113 Date d'inscription jeudi 1 juillet 2004 Statut Membre Dernière intervention 25 août 2004 1
11 août 2004 à 17:11
A mon avis c'est affectivement l'interprétation de la requete par le moteur sql de access qui pose probleme.

Mais je crois que c'est un probleme SQL, pas access. Je suis pas entièrement sur que le sql comprenne les décimaux avec des virgules (par opposition à un point).

Faut tester :) Et la je peux pas :p

A.
0
wildmaus Messages postés 11 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 4 février 2005
11 août 2004 à 18:22
merci, ca fonctionne...c'est de sympa m'avoir aidé

wilmaus
0
Rejoignez-nous