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 :

Vérifier que le résultat d'une requête (n')est (pas) vide [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 19
    Points : 11
    Points
    11
    Par défaut Vérifier que le résultat d'une requête (n')est (pas) vide
    Bonjour,

    J'ai cherché un peu partout mais tout ce que j'ai trouvé c'est ce genre de code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set rep = CurrentDb.OpenRecordset("req courrier nouveau", dbOpenSnapshot)
     
        If rep.EOF Then
              'Mon code
        End If
    Malheureusement, il ne fonctionne pas : Le code est quand même exécuté même si la requête ne retourne rien (et ça j'en suis sûr).

    Je ne vois pas où se trouve l'erreur dans ce code ou si il faut utiliser complètement autre chose. si vous pouviez éclairer ma lanterne là dessus je vous en serait très reconnaissant.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 191
    Points : 200
    Points
    200
    Par défaut
    Bonjour,

    essais peut-être avec la propriété RecordCount du recordset. Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If rep.RecordCount = 0 then
       msgbox "Résultat NULL"
    else
       msgbox "Résultat non NULL"
    end if
    En fait, la propriété RecordCount te permettra de compter le nombre d'enregistrement(s) retourné(s) par ta requête.

    Bonne journée!

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    je crois que ton code ne s'exécute QUE s'il n'y a PAS d'enregistrement à ta requête.
    je pense que cela devrait marcher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        If not(rep.EOF) Then
              'Mon code
        End If
    Explication :
    EOF signifie End Of File (fin de fichier), il prend la valeur Vrai quand la fin du fichier est atteinte.
    s'il n'y pas d'enregistrement du tout dans la requête, alors la fin du fichier est atteinte dès l'ouverture.

    Ainsi le if ci dessus permet de tester si tu n'as PAS atteint la fin du fichier.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Merci beaucoup. Effectivement avec un Not ça fonctionne mieux. J'aurais peut-être dû me renseigner sur ce .EOF avant de l'utiliser n'importe comment

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/12/2008, 14h37
  2. Comment vérifier si une structure n'est pas vide
    Par colorid dans le forum Langage
    Réponses: 7
    Dernier message: 09/09/2008, 00h01
  3. Réponses: 2
    Dernier message: 11/11/2007, 16h49
  4. Réponses: 4
    Dernier message: 26/05/2006, 08h59
  5. Réponses: 19
    Dernier message: 26/01/2005, 10h41

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