VBA Problème Recorset

Résolu
esp95 Messages postés 13 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 25 août 2011 - 17 mars 2010 à 11:37
esp95 Messages postés 13 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 25 août 2011 - 17 mars 2010 à 17:06
Bonjour à tous,
J'ai bos chercher sur le net je ne trouve pas réponse à mon problème je vous drais récupérer le résultat d'une requête dans une zone de texte sachant que ma requéte ne me renverra qu'un seul résultat

Dim db As Database
Dim strSql As String
Dim rs As Recordset
Set db = CurrentDb
strSql = "select A from table where identifiant=1 "
Set rs = db.OpenRecordset(strSql)
rs.MoveFirst
Do While Not rs.EOF
MsgBox (rs.Fields(1).Value)
rs.MoveNext
Loop

16 réponses

esp95 Messages postés 13 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 25 août 2011
17 mars 2010 à 17:06
Merci de ta patience j'ai finit par trouver la solution je suis vraiment un boulet ma base est sur un serveur sql donc current db est forcément vide
Merci bien
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
17 mars 2010 à 11:49
un seul champ ?

Fields(0)

et non 1


Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
esp95 Messages postés 13 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 25 août 2011
17 mars 2010 à 13:44
merci de ta réponse,
mais la ligne
Set rs = db.OpenRecordset(strSql)
ne fonctionne pas je ne comprend pas pourquoi
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
17 mars 2010 à 14:02
c'est vague, "ne fonctionne pas"

si ta table s'appelle bien "table"
que le champ voulu se nomme bien "A"
et que l'identifiant....

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0

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

Posez votre question
esp95 Messages postés 13 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 25 août 2011
17 mars 2010 à 14:32
Cela me met
Variable Objet ou variable de block with non définie
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
17 mars 2010 à 14:38
ok, mais a quel ligne ?


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
esp95 Messages postés 13 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 25 août 2011
17 mars 2010 à 14:44
Set rs = db.OpenRecordset(strSql)
A cette ligne je ne comprend pas ... J'ai même copier des codes fonctionnant pour d'autres personnes en modifiant la requéte est toujours la même erreur
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
17 mars 2010 à 14:50
et ton CurrentDB il est tombé du cocotier ?

tu est bien sous Access ?

veilles bien a jouer avec :

Option Explicit

tout en haut de ton module

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
esp95 Messages postés 13 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 25 août 2011
17 mars 2010 à 15:09
Je viens de le rajouter à quoi sert cette option (désolé pour ma curiosité)
Oui je suis bien sous ACCESS 2007
Mon currentdb pour dire qu'il utilise la base de donnée courante nn ?
Merci pour tes réponses
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
17 mars 2010 à 15:16
Option Explicit permet d'empecher d'utiliser des varaibles non déclarées.

Ce Message (Variable Objet ou variable de block with non définie)
signifie que tu tentes d'accéder à une propriété ou une méthode d'un objet qui ne référence pas une instance de ta classe.

Comme si finallement db était à 'Nothing'

nettoyons ton code :

With CurrentDb.OpenRecordset("SELECT `A` FROM `table` WHERE `identifiant`=1 ")
    .MoveFirst 
    Do Until .EOF 
        MsgBox .Fields(0).Value
        .MoveNext 
    Loop
    .Close
End With


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
esp95 Messages postés 13 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 25 août 2011
17 mars 2010 à 15:29
je crois je suis un boulet enfin cela ne fonctionne toujours pas comment étre sur que db n'est pas a nothing ?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
17 mars 2010 à 15:43
ben en testant ^^

If db Is Nothing Then
   msgbox "nothing"
Else
   msgbox "pas nothing"
endif


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
esp95 Messages postés 13 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 25 août 2011
17 mars 2010 à 15:54
et ben tu as raison c'est ca db est vide
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
17 mars 2010 à 15:58
après, tu peux utiliser CurrentDB plutot que db, mais le resultat risque d'etre le meme ^^

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
esp95 Messages postés 13 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 25 août 2011
17 mars 2010 à 16:33
exacte c'est pareil as tu une idée ?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
17 mars 2010 à 17:01
pas vraiment, je joues peu sous Access...
je code en VB6 et je me connecte a la base, juste...

je fais pas de forumlaires Access, so ...

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0