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

Requêtes et SQL. Discussion :

[VBA DAO] Ajouter un recordset à un autre recordset


Sujet :

Requêtes et SQL.

Vue hybride

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 126
    Par défaut [VBA DAO] Ajouter un recordset à un autre recordset
    Bonjour,

    J'aimerai savoir s'il est possible d'ajouter le contenu d'un recordset à un autre recordset, sachant qu'ils proviennent tous les deux d'une requête du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM Table WHERE id=variable
    Etant donné que ces deux recordset possèdent les mêmes champs, j'aimerai pouvoir obtenir un seul recordset

    Ceci est un exemple simplifié, mais en fait dans le cas qui me pose problème, la variable varie en fonction d'une boucle.

    Merci d'avance

    ceuce

  2. #2
    Expert confirmé
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Par défaut
    Salut,

    1- Oui tu peux te servir d'un Recordset pour un autre.

    2- Je ne comprend pas très bien ton utilité d'utiliser 2 Recordset, si ces deux sont ici de la même source pourquoi ne pas travaillé sur 1 et récupérer les infos nécéssaires.

    Peux-tu développez ce que tu veux vraiement faire avec les 2.

    Dolphy

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 126
    Par défaut
    Alors en fait j'exécute une première requête, peu importe la tête qu'elle a, et je stocke le résultat ds un recordset (rs).

    Ensuite j'ai une requête qui doit aller chercher les résultats qui ont une correspondance avec le contenu de rs, donc je pensais faire une requête dans une boucle et additionner les recordset issu de cette dernière requête (rsA). Dans l'idée ce serait comme ça, mais dans le concret je ne sais pas comment ça se passe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    While not rs.EOF
         idA=rs.Fields("id")
         sql="SELECT * FROM Table WHERE Table.idA=idA
         rsA=rsA+rsA.Open sql
         rs.MoveNext
    Wend
    rsA va ensuite me servir à faire de même avec une autre requête

    Merci pour ton aide

    ceuce

  4. #4
    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,

    J'ai l'impression qu'il s'agit plutôt d'un Pb qui relève du sous-forum "Requête et SQL".

    Question importante:
    Au final, tous les enregistrements proviennent-ils de la même table ?

    Peut être qu'une jointure pourrait convenir.

    En SQL, connais-tu le principe des jointures ?
    Ici le tutoriel "Maison" : Comprendre les jointures / relations dans Access.

  5. #5
    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
    Je rejoint JBO, à la différence près que je ne parlerais pas de jointure mais d'union. Ceci dit, tu es un peu confus dans ta question, donc on ne sait pas trop. Voici un exemple illustrant mes propos :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Nom  Prenom
    PAUL Marie
    DUPONT Marc
    FREDU Yves



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM Matable WHERE Nom LIKE "D*"
    Retourne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM Matable WHERE Nom LIKE "F*"
    Retourne :

    L'union des deux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT * FROM Matable WHERE Nom LIKE "D*"
     
    UNION
     
    SELECT * FROM Matable WHERE Nom LIKE "F*"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DUPONT Marc
    FREDU Yves
    Est ce que ça répond à ta question ?

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 126
    Par défaut
    Mon message a été déplacé dans ce forum par un modérateur, parceque le problème ne relève pas du pure sql.
    En effet, l'exemple donné par Tofalu ne convient pas

    SELECT * FROM Matable WHERE Nom LIKE "D*"

    UNION

    SELECT * FROM Matable WHERE Nom LIKE "F*"
    car le problème c'est que les valeurs D et F chez moi, sont dans un recordset. Alors ma question c'est, comment parcourir un recordset et en extraire les valeurs qui serviront de critère à ma requête? Et comment insérer ça dans une requête?

    Pour répondre à JBO, les enregistrements sont dans une même table mais le critère pour la requête est représenté par un recordset.

    Ce n'est pas facile d'être clair mais j'espère l'être assez pour que vous compreniez...
    Merci

    ceuce

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

Discussions similaires

  1. [Toutes versions] Aller d'un recordset à un autre dans un formulaire ouvert en VBA
    Par damsmut dans le forum IHM
    Réponses: 1
    Dernier message: 03/12/2009, 14h45
  2. [VBA DAO] Union de deux Recordsets
    Par oohcalme dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/08/2009, 08h43
  3. Réponses: 2
    Dernier message: 20/05/2008, 16h37
  4. [VBA DAO] methode sur recordset
    Par ip203 dans le forum VBA Access
    Réponses: 3
    Dernier message: 04/04/2007, 12h20
  5. VBA - DAO - recherche dans un recordset
    Par Sebimpro dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/07/2006, 08h48

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