IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

[DAO]Afficher la valeur d'un Recordset


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 113
    Par défaut [DAO]Afficher la valeur d'un Recordset
    Bonjour,

    J'ai beau cherché je n'y arrive pas.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim MaRequete,Champ1 As String
     
    'c'est une requète assez longue avec des variables
    MaRequete = SELECT A,B,C From MaTable 
     
    Set db = DBEngine.OpenDatabase(mabase.mdb)
    Set rst = db.OpenRecordset(MaRequete)
     
    Champ1 = rst.Fields("A")   'J'ai une erreur comme quoi "No Current Record"
    Pourtant en faisant un débogage, je vois bien que ma requète à retourner des enregistrements mais je n'arrive pas accéder à ces résultats.

    Ou est mon erreur ?

    Merci pour votre aide

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Par défaut
    Bonjour,
    Citation Envoyé par uskiki85
    Pourtant en faisant un débogage, je vois bien que ma requète à retourner des enregistrements mais je n'arrive pas accéder à ces résultats.
    d'après ce que je lis, ton code ne peut absolument pas fonctionner !

    Est-ce que tu travailles dans Access ou bien dans un autre environnement (VBA Excel/Word/..., VB6...) ?

    Citation Envoyé par uskiki85
    Ou est mon erreur ?
    Pour commencer, tu dois te protéger des erreurs de type "variables non définies".
    Pour ça, tu devrais toujours faire commencer les modules de code par:
    Ensuite:
    la commande SQL de ta requête est en fait une chaîne de caractères, il faut l'encadrer par des guillemets.
    la méthode OpenDatabase a besoin du chemin d'accès (complet de préférence) au fichier MDB, c'est aussi une chaîne de caractères.

    Maintenant, tu vas pouvoir commencer à travailler...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim MaRequete As String
    Dim Champ1 As String
     
    // c'est une requète assez longue avec des variables
    MaRequete = "SELECT A,B,C From MaTable"
     
    Set db = DBEngine.OpenDatabase("mabase.mdb")
    Set rst = db.OpenRecordset(MaRequete)
     
    Champ1 = rst.Fields("A")

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 113
    Par défaut
    Je te rassure ce que j'avais écris n'étais pas mon code exact. Au lieu de tout écrire, j'ai juste fais un résumé (un peu trop résumé ...).

    Je travaille sur Access

    Et à part ça, vois tu une solution à mon problème ?

  4. #4
    Expert éminent

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Par défaut
    Sans le vrai code

    Il doit te manque un retour à la ligne quelque part, ou peut être une lettre, ou ...
    On est pas devin

    A priori, le recordset est vide !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 113
    Par défaut
    Je voulais juste simplifier mon code pour mieux faire comprendre mon problème.

    Voici mon vrai code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Dim MesParam, Parents,As String
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
     
    Set db = DBEngine.OpenDatabase("C:\My Documents\My Documents\Pierrot.mdb")
    MesParam = "SELECT DISTINCTROW Children.ParentID, Children.ChildID, [Parents].[Title] & ' ' & [ParentName] & ' ' & [ParentSurname] AS FullNameP, [ChildName] & ' ' & [ChildSurname] AS FullNameC, Children.ClassID,School.SchoolName,Class.ClassTime  FROM School INNER JOIN (Parents INNER JOIN (Class INNER JOIN Children ON Class.ClassID = Children.ClassID) ON Parents.ParentID = Children.ParentID) ON School.SchoolID = Class.SchoolID WHERE ChildName='"
    MesParam = MesParam & Forms![Print Registration Form].ChildList.Column(1)
    MesParam = MesParam & "' AND ChildSurname ='"
    MesParam = MesParam & Forms![Print Registration Form].ChildList.Column(2)
    MesParam = MesParam & "' ORDER BY Children.ChildID DESC;"
     
    Set rst = db.OpenRecordset(MesParam)
     
    'Parents
    Parents = rst.Fields("ParentID")
    En mode débogage, j'ai pu récupéré le contenu de ma variable MesParam et en l'exécutant, elle me retourne bien un résultat donc le problème ne vient pas de ma requète.

    Merci pour votre aide

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 113
    Par défaut
    c'est bon !

    J'avais fait une erreur dans ma requète.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [dblookup] afficher une valeur par programmation
    Par let_me_in dans le forum Bases de données
    Réponses: 1
    Dernier message: 11/05/2005, 14h42
  2. [TMS320C31] Afficher une valeur à l'écran
    Par miminou dans le forum Autres architectures
    Réponses: 3
    Dernier message: 17/04/2005, 18h48
  3. [TP] Afficher une valeur avec outtext
    Par Bouilla dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 06/03/2005, 09h57
  4. Réponses: 3
    Dernier message: 28/01/2004, 14h55
  5. Afficher une valeur du context
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 13
    Dernier message: 28/04/2003, 13h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo