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

VB 6 et antérieur Discussion :

[VB6]Joindre deux recordsets en un seul


Sujet :

VB 6 et antérieur

  1. #1
    Membre habitué
    Avatar de elifqaoui
    Inscrit en
    Juillet 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 152
    Points : 138
    Points
    138
    Par défaut [VB6]Joindre deux recordsets en un seul
    bonjour,
    j'ai une fonction qui renvoit un recordset, seulement ce recordset doit correspondre à la concaténation de deux recordsets, je me rappelle que j'avais déjà vu un sujet similaire il y a bien longtemps, je l'ai trouvé, mais sans solution
    http://www.developpez.net/forums/vie...ght=recordsets
    je relance le débat
    merci

  2. #2
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    il y a plusieurs approche selon ce que tu veux faire.
    Tu veux obtenir un recordset en partant de deux :
    Si oui, est ce par ajout de ligne ou par mélange de colonne. :
    Si c'est un mélange de colonne, il y a t il une colonne commune qui permette de faire la synchro :
    etc.....

    Bref cher maitre, pourrais tu developper la question

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Allez un coup d'intuition de la grenouille...
    y'aurait pas une instruction merge associée aux recordset ?

  4. #4
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    not ma grenouille, il faut l'écrire

  5. #5
    Membre habitué
    Avatar de elifqaoui
    Inscrit en
    Juillet 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 152
    Points : 138
    Points
    138
    Par défaut
    Citation Envoyé par bidou
    il y a plusieurs approche selon ce que tu veux faire.
    Tu veux obtenir un recordset en partant de deux :
    Si oui, est ce par ajout de ligne ou par mélange de colonne. :
    Si c'est un mélange de colonne, il y a t il une colonne commune qui permette de faire la synchro :
    etc.....

    Bref cher maitre, pourrais tu developper la question
    salut bidou,
    je veux récupérer un recordset par mélange de tous les enregistrements renvoyé par les deux recordsets (biensur c le meme champ).
    un peu de code pour que ca soit plus clair
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Public Function ReturnRecordset() As Recordset
    Dim Req as String
    Req = "SELECT element FROM Table1 WHERE ...."
    Ado.Open Req,Base
    Req = "Select (Sous_Element) as Element FROM Table2 WHERE ..."
    Ado1.Open Req, Base
    Set ReturnRecordset = Ado
    là la function ne renvoit que le premier recordset, or moi je veux qu'elle renvoit un Recordset qui soit le mélange (en enregistrements) des deux recordsets.
    j'espère que c clair bidou
    merci

  6. #6
    Membre habitué
    Avatar de elifqaoui
    Inscrit en
    Juillet 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 152
    Points : 138
    Points
    138
    Par défaut
    autre chose, ce Recordset ne doit en aucun cas modifier la base de données, ce recordset c juste pour faire des traitements sur ces enregistrements.

  7. #7
    Membre habitué
    Avatar de elifqaoui
    Inscrit en
    Juillet 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 152
    Points : 138
    Points
    138
    Par défaut
    la concaténation des deux recordsets se fera seulement sur le seul champ Element, j'ai déjà entendu parler d'un recordset non-lié, comment puis-je l'utiliser? et est ce qu'il répondera à mes besoins.
    merci

  8. #8
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    dans ce cas tu peut soit créer un recordset.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim Req As ADODB.Recordset
    Set Req = New ADODB.Recordset
    With Req
    .Fields.Append "NomChamp1", adInteger 'numerique
    .Fields.Append "NomChamp2", adBSTR, 255 'Chaine
    .CursorType = adOpenStatic
    .LockType = adLockOptimistic
    .Open
    End With
    et ensuite travailler dessus avec des addnew,
    soit utiliser le premier recordset, et ajouter dessus les enregistrements du second. Attention de travailler côté client pour ne pas modifier ta base.

  9. #9
    Membre habitué
    Avatar de elifqaoui
    Inscrit en
    Juillet 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 152
    Points : 138
    Points
    138
    Par défaut
    Citation Envoyé par bidou
    dans ce cas tu peut soit créer un recordset.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim Req As ADODB.Recordset
    Set Req = New ADODB.Recordset
    With Req
    .Fields.Append "NomChamp1", adInteger 'numerique
    .Fields.Append "NomChamp2", adBSTR, 255 'Chaine
    .CursorType = adOpenStatic
    .LockType = adLockOptimistic
    .Open
    End With
    et ensuite travailler dessus avec des addnew,
    soit utiliser le premier recordset, et ajouter dessus les enregistrements du second. Attention de travailler côté client pour ne pas modifier ta base.
    j'ai peur de ne pas avoir bien compris , ou bien j'ai mal expliqué, je reprends :
    dans l'exemple en haut, je selectionne dans chaque Recordset un champ que j'ai appelé par le meme nom (Element) pour faciliter la concaténation des deux recordsets, le recordset que je veux retourner dans la function c le total des enregistrements des deux recordsets, je veux en aucun cas que ca modifie la base, puisque je veux seulement parcourir ces enregistrements pour faire des tests après.
    j'espère que c clair à présent
    merci de bien détailler bidou

  10. #10
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    le recordset créé dans l'exemple que je t'ai donné n'est lié à aucune base, donc pas de danger de modification.
    De même, si tu travaille sur un recordset client déconnecté (ActiveConnection = Nothing) tu peux lui ajouter des enregistrements sans risques.

    Reprenons
    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
    Public Function ReturnRecordset() As Recordset 
    Dim NouvReq As ADODB.Recordset,  Req As ADODB.Recordset 
     
    Set Req = New ADODB.Recordset 
    Req.Open "SELECT element FROM Table1 WHERE ...." ,Base 
    Set NouvReq = New ADODB.Recordset 
    With NouvReq 
        .Fields.Append "Element", adBSTR, 50 'Chaine 
        .CursorType = adOpenStatic 
        .LockType = adLockReadOnly
        .Open 
         while not Req.EOF
             .AddNew "Element", Req!Element
              Req.MoveNext
         Wend
         .......'pareil avec le deuxième recordset
    End With
    Tu va obtenir un recordset contenant les enregistrements des deux tables et lié a aucune base.

  11. #11
    Membre habitué
    Avatar de elifqaoui
    Inscrit en
    Juillet 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 152
    Points : 138
    Points
    138
    Par défaut
    oups! je comprends mieux maintenant, j'essayerai ca demain .
    merci encore bidou
    a+

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

Discussions similaires

  1. [VB6] "Concaténation" de deux images en une seule
    Par KrusK dans le forum VB 6 et antérieur
    Réponses: 22
    Dernier message: 07/07/2006, 09h45
  2. enregistrer deux fichier dans un seul fichier
    Par Bourak dans le forum Langage
    Réponses: 9
    Dernier message: 05/11/2005, 09h48
  3. Réponses: 4
    Dernier message: 11/10/2005, 10h17
  4. impossible d'ouvrir deux recordset sur la meme connection ?
    Par requiemforadream dans le forum ASP
    Réponses: 3
    Dernier message: 28/04/2005, 09h31
  5. [VB6] générer un recordset qui n'est pas lier à un bdd
    Par damyrid dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 05/06/2003, 17h48

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