[VBA] Pb avec une requete select

cokinoumasterflash Messages postés 62 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 19 août 2005 - 12 juil. 2005 à 10:43
cokinoumasterflash Messages postés 62 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 19 août 2005 - 18 juil. 2005 à 15:49
Bonjour,



J'ai besoin d'un gros coup de main parce que ça fait 2 jours que je galère sur ce problème.

Je chercher à importer des données de excel dasn une base de données
access mais je rencontre un problème au niveau de ma requete.



Dim xl As Excel.Application



Dim MySQL , typ As String



Dim rst As DAO.Recordset


Dim typ as string


.......


MySQL = "SELECT [type],[Taxon] FROM
ListePollens WHERE ([Taxon]= '" & xl.Cells(i, 1).Value & "')"



Set rst = CurrentDb.OpenRecordset(MySQL, dbOpenDynaset, dbReadOnly)



typ=rst![type]

........



J'ai à chaque fois fois le message comme quoi il n'y a pas
d'enregistrement en cours. Pourtant j'ai vérifié et revérifié
l'orthographe de mes champs et il n'y a aucun problème l'enregistrement
existe bien. Mais le programme ne le voit pas.

J'ai aussi vérifié mes boucles et il n'y a pas de problème.

Le programme bloque au niveau de :

Set rst = CurrentDb.OpenRecordset(MySQL, dbOpenDynaset, dbReadOnly)




J'ai vraiment besoin d'un coup de main svp

Merci,

Seb.

10 réponses

cs_dan80 Messages postés 101 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 19 avril 2006
12 juil. 2005 à 10:49
taxon est bien un string?
0
cokinoumasterflash Messages postés 62 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 19 août 2005 7
12 juil. 2005 à 10:56
Salut,



Oui oui Taxon a bien été défini comme du texte dans ma base de donnée.



Seb.
0
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
12 juil. 2005 à 10:57
Si Taxon est de type string essai

MySQL = "SELECT [type],[Taxon] FROM ListePollens WHERE ([Taxon]= '" & trim(str(xl.Cells(i, 1).Value) & "')"

PS: Si votre problème est résolu, prière de bien vouloir clôturer votre message par une réponse acceptée !
0
cokinoumasterflash Messages postés 62 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 19 août 2005 7
12 juil. 2005 à 11:19
Alors j'ai essayé avec ta solution mais du coup j'ai un autre message d'erreur :

incompatibilité de type.

Seb.
0

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

Posez votre question
cs_dan80 Messages postés 101 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 19 avril 2006
12 juil. 2005 à 13:36
je te conseille d'affecter la aleur de la cellule a une variable, de l'afficher pour controle puis tu envoi la variable a ta requete
comme ca tu trouveras peut etre ton erreur
0
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
12 juil. 2005 à 14:53
Dans le cas que j'ai cité il manque une parenthèse



MySQL = "SELECT [type],[Taxon] FROM ListePollens WHERE ([Taxon]= '" & trim(str(xl.Cells(i, 1).Value)) & "')"



sinon fait un déboguage comme dan80 a dit !!

PS: Si votre problème est résolu, prière de bien vouloir clôturer votre message par une réponse acceptée !
0
cokinoumasterflash Messages postés 62 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 19 août 2005 7
12 juil. 2005 à 16:02
Merci de prévenir pour les parenthèse mais j'avais corriger de moi-même

Alors j'ai fait ce que vous m'avez dit c'est à dire :



Dim nom as integer

nom = "'" & xl.Cells(i, 1).Value & "'"

MySQL = "SELECT [type],[Taxon] FROM ListePollens WHERE ([Taxon]=nom)"

Du coup j'ai un message d'erreur : Trop peu de paramètres, 1 attendu.



Si je met ensuite [taxon]='nom', je retrouve mon message : pas d'enregistrements correspondant.



Le problème c'est que je ne comprends même pas le nouveau message d'erreur.



Seb.
0
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 9
18 juil. 2005 à 05:53
Salut











Dim nom as integer

nom = "'" & xl.Cells(i, 1).Value & "'"

MySQL = "SELECT [type],[Taxon] FROM ListePollens WHERE ([Taxon]=nom)"



pas d'enregistrements correspondant, ça parait logique, tu voulais pas plutôt faire ça :



Dim nom as integer


nom = "'" & xl.Cells(i, 1).Value & "'"


MySQL = "SELECT [type],[Taxon] FROM ListePollens WHERE ([Taxon]=" & nom & ")"



Perso, j'aime pas manipuler les noms de champs avec les [] ...
donc je te dirais de les enlever vu qu'ils ne servent pas à grand chose
(dans le cas où les noms de champs sont sans espaces) ... Mais ça
n'explique pas ton bug ....





Et quand tu testes ta requêtes sous access, tu as une erreur ? Tant que
ta requête ne tourne pas sous access, ce n'est pas la peine de compter
la voir fonctionner dans ton appli VB...



++



Zlub
0
cokinoumasterflash Messages postés 62 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 19 août 2005 7
18 juil. 2005 à 13:58
ok je vais regarder ta solution en espérant que ça marche....



@+

Seb.
0
cokinoumasterflash Messages postés 62 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 19 août 2005 7
18 juil. 2005 à 15:49
J'ai fait ce que tu m'as dis. Il y a du mieux. Le programme ne me
renvoie pas tuot de suite un message d'erreur. Mais au bout d'un
certain temps il me dit : Dépassement de capacité.

Pourtant je n'utilise pas un grand tableau. (Il fait 116 lignes * 23 colonnes).

L'ordinateur étant récent le problème ne devrait pas venir de lui.Peut-être que cela vient de ACCESS ?



As-tu déjà eu ce genre de bug ?



Seb.
0