Stocker et manipuler le Recordset en VBA
Bonjour, Bonsoir,
Je viens de faire des recherches sur le Recordset sur votre forum mais je suis un peu perdu du faite que sa dépend des situations.
J'aimerais si possible que vous regarder mon code, j'aimerais stocker les tables en mémoire pour par la suite les afficher sous excel et pouvoir les manipuler en mémoire.
Voici mon Module de connexion :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
Public Sub Connect()
'Déclaration des variables
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim SQL, sBase As String
Dim Ligne As Long
'Instanciation des variables
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
'Module de classe
Dim tkEMP As New tkEMP
'On Error Resume Next
'Nom de ma Base de donnée
sBase = "BaseDeTest"
'Connection à la Base de Donnée
With cn
.ConnectionString = "Provider=SQLOLEDB; driver={SQL Server};Server=localhost" & _
";UID=sa;Password=password;Database=" & sBase
.Open
End With
SQL = "Select * From tkEMP Order by Secteur"
'Set rs = cn.Execute(SQL) [Ancienne configuration de lecteur de la requete]
'Connexion à la Base de Donnée et ouverture du RecordSet
rs.Open SQL, cn
'Remplissage du tableau RecordSet
With tkEMP
While Not rs.EOF
.Nom = rs.Fields("Nom").Value
.Prenom = rs.Fields("Prenom").Value
.Embauche = rs.Fields("Embauche").Value
.Titre = rs.Fields("Titre").Value
.Departement = rs.Fields("Departement").Value
.Salaire = rs.Fields("Salaire").Value
.Tx_Comm = rs.Fields("Tx_Comm").Value
.Secteur = rs.Fields("Secteur").Value
rs.MoveNext
Wend
End With
Ligne = 2
'Remplissage du Tableau Excel à partir des données récupéré précédemment
With tkEMP
While Not rs.EOF
Cells(Ligne, 1).Value = "X"
Cells(Ligne, 2).Value = .Nom
Cells(Ligne, 3).Value = .Prenom
Cells(Ligne, 4).Value = .Embauche
Cells(Ligne, 5).Value = .Titre
Cells(Ligne, 6).Value = .Departement
Cells(Ligne, 7).Value = .Salaire
Cells(Ligne, 8).Value = .Tx_Comm
Cells(Ligne, 9).Value = .Secteur
rs.MoveNext
Ligne = Ligne + 1
Wend
End With
'Fermeture de la connection
cn.Close
End Sub |
Mon Module de Classe :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
Option Explicit
Public Nom As String
Public Prenom As String
Public Embauche As Date
Public Titre As String
Public Departement As Integer
Public Salaire As Long
Public Tx_Comm As Long
Public Secteur As String
Public Sub Flush()
'Pas encore renseigné
End Sub |
Merci beaucoup.