Fusion de 2 recordset

Bonjour le forum ,

Je recupere dans un recordset des données provenant d'une base de donnée. mon probleme est lui suivant c'est que les données sont sur deux serveurs et j'aimerais charger une listbox d'un userform.

Avec le code suivant j'arrive bien à récuperer les données d'un recordset, si NS = 1 je recupere bien les données du Dlist1 et si NS = 2 je recupere bien les données du serveur 2 mais impossible de les combiner

Private Sub UserForm_Initialize()
Dim oRS As Recordset
'NbrS = 2

For NS = 1 'To 2
ConnectionDB

    Requete = "SELECT Distinct app.nom_link "
    Requete = Requete & " from thermo.parametres as app"

    'exécute la requête, résultat dans un RecordSet
    Set oRS = oConnect.Execute(Requete)
    If NS = 1 Then Dlist1 = oRS.GetRows
    If NS = 2 Then Dlist2 = oRS.GetRows
Next NS
 ListBox1.List = Application.Transpose(Dlist1)
    oRS.Close
    Set oRS = Nothing
en sub

Mais toutes mes tentatives pour charger la listbox1 avec les recordset sont de cuisant échec.

 ListBox1.List = Application.Transpose(Dlist1) &  Application.Transpose(Dlist2)

Ou encore

ListBox1.List = Application.Transpose(Dlist1)
ListBox1.List = ListBox1.List &  Application.Transpose(Dlist2

etc... Si vous avez des idées je suis prenneur

Bonjour edlede,

Perso, je ne comprends pas la démarche

Que veux-tu faire exactement ?

@+

Mon but est de créer une liste avec tous les nom "nom_link" des deux serveur.

Car les données que j'utilise sont réparties sur les deux serveurs. Actuellement j'utilise un Fichier excel par nom_link c'est à dire 3, mais certain de mes collegues en utilise 4 à 5.

Bref, avoir une liste complete me permettrait de generer 1 fichier unique, et ca me servira également pour les mise à jour etc...

J'espère être plus claire

Re,

Pour combiner des requêtes normalement on utilise UNION, à creuser de ce côté là

Requête union

@+

Oui je vois... mais je fais la même requete mais sur deux bases différentes. et ca m'embete de devoir ecrire les données sur un onglet avant de les charger dans ma listbox. Je suis certain que l'on doit pouvoir charger la listebaox en passant par un redim preserve mais j'y arrive pas non plus, ou avec une un dictionnaire mais idem, c'est l'echec.

Merci qd même pour la piste ca pourra me servire sans doute plus tard

Re,

Quel est le code de "ConnectionDB"

Il nous manque des informations : Dlist1 et Dlist2 sont-il définis et si oui, où ?

A+

Public oConnect As ADODB.Connection
Public NS As Integer
Public NbrS As Integer
Public Sub ConnectionDB()
Dim S As String
'Dim NS As Integer
Set oConnect = New ADODB.Connection

    If NS = 1 Then S = "UID=readonly;PWD=OS.34!ro;DRIVER={MySQL ODBC 5.3 UNICODE Driver};SERVER=10.181.208.71;PORT=33006;DATABASE=thermo;"
    If NS = 2 Then S = "UID=readonly;PWD=OS.34!ro;DRIVER={MySQL ODBC 5.3 UNICODE Driver};SERVER=10.181.207.190;PORT=33006;DATABASE=thermo;"
    'Ouverture de la base de données
    oConnect.Open S

End Sub

Les Dlist ne sont pas défini

Le fichier parametre est l'extraction totale de ma table du server 1

V10....j'essaye de combiner les deux listes nom-link

Si tu as d'autre question je reste dispo

Et j'essaye de prevoir mon code pour l'arrivé d'un 3eme serveur...

2v10-b.xlsm (223.96 Ko)
Rechercher des sujets similaires à "fusion recordset"