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 :

récupérer les valeurs dans 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 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 172
    Par défaut récupérer les valeurs dans recordset
    Bonjour,

    Je débute en DAO et je n'ai pas très bien compris ce que retourne querydef et donc à quoi ressemble ma variable Qu1.

    Ce que je veux faire c'est savoir si ma requete contient quelque chose ou est vide et ensuite faire une structure conditionnelle avec ça. Est-ce qu'il faut l'exécuter au préalable?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Qu1 As DAO.QueryDef
    Dim Qu2 As DAO.QueryDef
    Dim Db As DAO.Database
    Set Db = CurrentDb
     
    Set Qu1 = Db.CreateQueryDef("", "select code_station from station_qualite where code_station not in ([ibgn].[numéro de la stq])")

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    tu confonds probablement deux objets

    le querydef et le recordset

    le querydef est une requête (généralement déjà enregistrée, avec ses propriétés)

    le recordset est l'ensemble des enregistrements manipulé par un texte sql
    contenu ou non dans un querydef

    un mabase.openrecordset(et là ton sql) devrait suffire à ton bonheur

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 172
    Par défaut
    et si je ne veux pas ouvrir mon recordset, mais juste lui attribuer ma requete SQL, c'est quoi la fonction?

    Et oui je pense que j'ai un peu confondu les 2....

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    openrecordset

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 172
    Par défaut
    avec le code suivant j'ai une erreur 3061, trop peu d'arguments...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim rs1 As Object
    Set Db = CurrentDb
    Set rs1 = Db.OpenRecordset("select code_station from station_qualite where code_station not in ([ibgn].[numéro de la stq])", dbOpenDynaset)
    est-ce que le problème vient de ma requete SQL??

    merci

  6. #6
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juin 2006
    Messages : 19
    Par défaut
    la Clause In dans le langage SQL doit Spécifier une plage de valeur comme

    select * from client wher nomclient in ('Jean','michelle','daniel')

    dans ton cas essaie select * from table1 where champ1 in (select champ2 from table2)

  7. #7
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juin 2006
    Messages : 19
    Par défaut
    Bonjour,


    pour savoir si ta requête retourne des resultats il faut passer par le biais d'un recodset

    voilà un petit exemple :

    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
    17
    18
    dim con as dao.database
    dim rec as dao.recordset
    
    set con= opendatabase(chainedeconnection)
    
    set rec=con.OpenRecordset("Select * from table")
    
    with rec
         if .absoluteposition=-1 then
                 msgbox "Pas d'enregistrement"
         else
                 .movelast
                 msgbox .recordcount & " Enregistrement(s) Trouvé(s)"
         end if
    end with
    
    rec.close

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/04/2009, 12h47
  2. Réponses: 21
    Dernier message: 18/11/2008, 14h36
  3. Récupérer les valeurs dans une PropertyInfo
    Par Psycadi dans le forum C#
    Réponses: 2
    Dernier message: 13/06/2008, 12h17
  4. Problème récupérer les valeurs dans une Hash
    Par pymouse dans le forum Langage
    Réponses: 4
    Dernier message: 12/07/2007, 17h11
  5. Récupérer les valeurs dans une fonction
    Par matmay dans le forum MATLAB
    Réponses: 3
    Dernier message: 04/05/2007, 16h50

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