wildmaus
Messages postés11Date d'inscriptionmercredi 26 mai 2004StatutMembreDernière intervention 4 février 2005
-
11 août 2004 à 14:25
wildmaus
Messages postés11Date d'inscriptionmercredi 26 mai 2004StatutMembreDerniè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.
wildmaus
Messages postés11Date d'inscriptionmercredi 26 mai 2004StatutMembreDerniè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.
wildmaus
Messages postés11Date d'inscriptionmercredi 26 mai 2004StatutMembreDerniè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 :(
el_teedee
Messages postés497Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention13 juillet 20159 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.
wildmaus
Messages postés11Date d'inscriptionmercredi 26 mai 2004StatutMembreDerniè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 :)
el_teedee
Messages postés497Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention13 juillet 20159 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.
ShadowWisp
Messages postés113Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention25 août 20041 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).