Connection necessaire pour recordset? [Résolu]

Signaler
Messages postés
47
Date d'inscription
mardi 19 mars 2013
Statut
Membre
Dernière intervention
23 mars 2013
-
Messages postés
47
Date d'inscription
mardi 19 mars 2013
Statut
Membre
Dernière intervention
23 mars 2013
-
Bonjour

Alors voila, j'ai crée une classe 'connexion' qui va se connecter à une base Access, et qui va récupérer les données issus d'une requete dans un recordset. Jusque la, pas de problème. Je voulais ensuite fermer la connexion avant de travailler à partir du recordset, est ce possible?

En gros, quand je ferme ma connexion à la base Access, je voudrais garder mon recordset, et là, maintenant, il se vide.

connection base access:
Private Sub Open_Conn_Mdb()

    Set Source = New ADODB.Connection
    With Source
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & p_Fichier 
        .Open
    End With
End Sub


Définition du recordset:
    ' Création de l'objet Recordset
    Set RsFichierSource = New ADODB.Recordset
    ' paramétrage du type de curseur
    RsFichierSource.CursorType = 3
    ' paramétrage du type de verrou
    RsFichierSource.LockType = 1
    ' ouverture du Recordset


Définition de le requete :
Function Recup_data(p_Req As String, Optional Lg_adOpenStatic As Long = 0) As Recordset
    If p_Req = "" Then GoTo PasdeReq
    Set Rs_Requete = New ADODB.Recordset
    If Lg_adOpenStatic <> 0 Then Rs_Requete.CursorType = adOpenStatic
    Bl_Recordset = True
    'Set Rs_Requete = Source.Execute(p_Req, adOpenStatic)
    Set Rs_Requete = Source.Execute(p_Req)
    Set Recup_data = Rs_Requete
End Function
.

Le vrai voyage, c'est d'y aller. Une fois arrivé, le voyage est fini. Aujourd'hui les gens commencent par la fin.

4 réponses

Messages postés
47
Date d'inscription
mardi 19 mars 2013
Statut
Membre
Dernière intervention
23 mars 2013

Bon, j'ai trouvé une solution de contournement, on recrée un sql, et on le rempli a partir du premier :

Private Sub AddDataRsCopernic(tata As string, toto as string)
    With RsCopernic
        .AddNew
        .Fields(champ1) = pData.tata
        .Fields(champ2) = pData.toto
        .Update
    End With
End Sub

Private Sub DefineRsCopernic()
    Set RsCopernic = New ADODB.Recordset
    
    ' Ajout des champs
    RsCopernic.Fields.Append champ1, adDecimal
    RsCopernic.Fields.Append champ2, adVarChar, 60

    RsCopernic.Open
    
End Sub


mais c'est pas vraiment pratique :/

Voila, merci quand ^m


Le vrai voyage, c'est d'y aller. Une fois arrivé, le voyage est fini. Aujourd'hui les gens commencent par la fin.
Messages postés
47
Date d'inscription
mardi 19 mars 2013
Statut
Membre
Dernière intervention
23 mars 2013

et pour recuperer le recordset:


Str_select = "Select * from MaTable"
Set Rs_Result = Conn.Recup_data(Str_select)



('conn' etant mon le nom de l'ionstance 'connection')

Le vrai voyage, c'est d'y aller. Une fois arrivé, le voyage est fini. Aujourd'hui les gens commencent par la fin.
Messages postés
47
Date d'inscription
mardi 19 mars 2013
Statut
Membre
Dernière intervention
23 mars 2013

on recrée un recordset...

Le vrai voyage, c'est d'y aller. Une fois arrivé, le voyage est fini. Aujourd'hui les gens commencent par la fin.
Messages postés
47
Date d'inscription
mardi 19 mars 2013
Statut
Membre
Dernière intervention
23 mars 2013

Je Up un peu.
Vous n'auriez pas une solution plus simple que celle que je propose?

Le vrai voyage, c'est d'y aller. Une fois arrivé, le voyage est fini. Aujourd'hui les gens commencent par la fin.