Comment afficher le resultat d'un recordSet - VB/VBA/VBS - Programmation
Marsh Posté le 15-04-2010 à 09:07:52
Il faut passer par une requete. (et proscrire les noms de variables accentués!!!)
Code :
|
Marsh Posté le 15-04-2010 à 09:44:13
Théoriquement, la solution initiale devrait marcher aussi bien que la seconde solution.
Je crois que le problème, dans les deux solutions vient de l'absence des guillemets obligatoires autour du mot "espèce". Je devine qu'ils n'ont pas été mis, car sinon VBA considèrerait que la chaine de la requête se termine avec le premier guillemet devant "espèce". Mais on contourne facilement ce problème, en utilisant des apostrophes, car c'est une syntaxe qui est acceptée quand on écrit une requête dans du VBA. Cela donnerait donc :
Set resultat = base.OpenRecordset("SELECT [tab especes complète].[nomVernaculaire] FROM [tab especes complète] WHERE ((([tab especes complète].code)='espèce'));" ) |
ou
Set objReq = CurrentDb.CreateQueryDef("", "SELECT [tab especes complète].[nomVernaculaire] FROM [tab especes complète] WHERE ((([tab especes complète].code)='espèce'));" ) |
N.B. Il faut aussi éviter le plus possible d'utiliser des lettres accentuées et des espaces pour les noms des champs et des variables, mais la table semble déjà créée, donc c'est un peu tard maintenant.
Marsh Posté le 15-04-2010 à 09:49:42
pour les espaces et les accents je ne prefere pas les modifié
et sinon j'ai corriger mon code mais le probleme est que l'enregistrement n'est pas reconnu
Code :
|
Marsh Posté le 15-04-2010 à 10:02:49
Citation : WHERE code ='& chr(34) & espece & chr(34)';" ) |
Oh là. maintenant, il y a trop de choses. Je suis désolé, mais ca ne va pas du tout. Il faut utiliser ma syntaxe.
Marsh Posté le 15-04-2010 à 11:06:06
j'ai trouvé la solution la voici :
"SELECT [tab especes complète].[nomVernaculaire] FROM [tab especes complète] WHERE [tab especes complète].code='" & espece & "';"
merci a touses pour votre aide
Marsh Posté le 16-04-2010 à 10:11:01
Fais gaffe à l'injection SQL :
Option Explicit |
Marsh Posté le 11-09-2013 à 17:05:09
PigeonV a écrit : Fais gaffe à l'injection SQL :
|
Merci beaucoup, votre code m'a permis de regler ce problème avec la fonction pure (pour un champ texte).
par contre je n'arrive pas à tester pour un champ date ?
auriez vous cela en magasin ;-)
Voici ce que j'ai adapté selon votre code:
qry = "SELECT [tableSalle].[HEURE] FROM [tableSalle] WHERE [tableSalle].UF='" & Pure(sallecherche) & "' and [tableSalle].DATE=" & datecherche & ";"
sans le critère date, cela marche très bien, mais l'ajout de l'item datecherche (dim as date) ne me rends rien dans la recherche (çà ne plante pas, mais ne trouve aucun enregistrement !)
merci si vous êtes encore là...
Marsh Posté le 11-09-2013 à 18:14:13
Bonjour,
??? je ne vois pas ma réponse/demande sur l'item ?
à moins que je n'ai pas su où le mettre pour apparaitre dans ce topic...
je cherche...
Marsh Posté le 14-04-2010 à 17:28:01
Bonjour je doit faire un petit programme en vba en utlisant des tables de ma base de donnée Access. Je voudrait savoir comment afficher le resultat d'un RecordSet mais il y a un erreur qui me dit Aucun enregistrement en cour !!!
voila mon code:
Dim base As DAO.Database
Dim espèce As String
Dim resultat As DAO.Recordset
Dim res As String
Set base = CurrentDb()
Set resultat = base.OpenRecordset("SELECT [tab especes complète].[nomVernaculaire] FROM [tab especes complète] WHERE ((([tab especes complète].code)=espèce));" )
resultat.MoveFirst
While Not resultat.EOF
With resultat
res = !nomVernaculaire
MsgBox res
End With
resultat.MoveNext
Wend
resultat.Close