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 :

[VBA] Comment afficher le résultat d'une requête SQL dans une msgbox ?


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
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Par défaut [VBA] Comment afficher le résultat d'une requête SQL dans une msgbox ?
    Bonjour,

    J'aimerais voir dans une MsgBox si ma requête SQL renvoie qqch, il faut que j'utilise quoi ?

    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 230
    Par défaut
    Si c'est juste pour savoir si elle renvoie quelque chose, tu peux par exemple écrire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    dim db as DAO.Database
    dim rs as DAO.Recordset
    dim sql as String
     
    set db = CurrentDb
    sql = "SELECT * FROM ..."
    set rs = db.OpenRecordset(sql)
     
    MsgBox "Ma requête comporte " & rs.RecordCount & " enregistrement(s)"
    Ou alors

    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 rs as DAO.Recordset
    dim sql as String
     
    set db = CurrentDb
    sql = "SELECT * FROM ..."
    set rs = db.OpenRecordset(sql)
     
    while not rs.EOF
       ' Traitement à faire sur chaque enregistrement
       rs.MoveNext
    wend

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Par défaut
    Lol t'as devancé mes pensées j'étais justement sur les recordset et je trouvais pas l'opérateur qu'il me fallait (RecordCount)

    Nickel merci

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 230
    Par défaut
    Pense au bouton résolu en bas de la page.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Par défaut
    2 questions :

    - ta 2e méthode permet de lire les enregistrements 1 par 1 ?

    - j'ai déjà défini le recordset dans une "Public Sub" et pour tant VB Editor n'a pas l'air de le reconnaitre pourtant vu que j'ai mi "public" ça devrait non ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Par défaut
    lol tkt pas mais avec l'infrmatique j'attend d'être bien sûr pour clicquer sur "résolu"

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par dalmasma
    - j'ai déjà défini le recordset dans une "Public Sub" et pour tant VB Editor n'a pas l'air de le reconnaitre pourtant vu que j'ai mi "public" ça devrait non ?
    Heu

    Le fait de déclarer ton recordset dans une public Sub ne donnera rien, il faut que tu le déclare en Public dans l'Entête d'un module de la maniére suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public rst as DAO.Recordset
    Car je suis sûr que tu as écrit Dim à la place de Public dans ta sub, n'est-ce-pas ? et que ton code qui suit est dans une autre partie de ton appli.

    Starec

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Par défaut
    C'est tout à fait ça (erreur classique apparemment )

    J'ai tapé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox rsPFT.RecordCount
    et le débugger se lance et affiche : erreur 424 : Objet Requis

    Il faut peut-être que je passe en public tout ce qui sert à définir mon recordset (en particulier la requete) non?

    Merci

  9. #9
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 230
    Par défaut
    Citation Envoyé par dalmasma
    - j'ai déjà défini le recordset dans une "Public Sub" et pour tant VB Editor n'a pas l'air de le reconnaitre pourtant vu que j'ai mi "public" ça devrait non ?
    Si tu veux dire que tu as déclaré et affecté le recordset dans une procédure, alors ce ne marchera pas. Il faut que tu déclare ton recordset à l'extérieur de toute fonction ou procédure, en haut de ta page.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Option Compare Database
    Option Explicit
     
    Dim g_rs DAO.Recordset
    Maintenant, le recordset g_rs est accessible dans toutes les procédures de la page. Tu peux le définir et l'utiliser là où tu veux.

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/05/2015, 10h19
  2. Réponses: 1
    Dernier message: 12/12/2011, 10h07
  3. erreur dans une requête sql dans une fonction php
    Par frboyer dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2009, 13h37
  4. Réponses: 5
    Dernier message: 26/02/2008, 12h45

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