Bonjour à tous,
Mon tout premier post après avoir chercher des heures sans une "vraie" réponse, j'éspère que la communauté pourra m'aider. Je précise je débute en VBA je n'emploi peut etre pas toutes les bonnes pratiques.
Donc voilà mon problème, je suis en train de me créer une classe pour communiquer avec ma bdd SQL Server.
J'utilise ADODB.Connection et ADODB.Recordset pour cela. Je les initialise via un CreateObject et non en activant la référence pour plus de portabilité sur mon projet.
Seulement voilà, lorsque je fais un Recordset.RecordCount, j'obtiens toujours -1, peut importe le nombre de résultats réel de ma requete...
J'ai vu qu'en activant la référence MS Active X Data Objects Recordset 2.8 manuellement, mon résultat est bon et tout fonctionne bien...
Pouvez vous m'aiguiller svp ?
Voici ma classe :
Et mon code de test :
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
18
19
20
21
22
23
24
25
26
27 Private Connection, Recordset As Object Private Sub Class_Initialize() Set Connection = CreateObject("ADODB.Connection") Set Recordset = CreateObject("ADODB.Recordset") Connection.Open "Provider=SQLOLEDB;Data Source=127.0.0.1;Initial Catalog=BDD;User ID=root;Password=root" End Sub Private Sub Class_Terminate() Set Recordset = Nothing Connection.Close Set Connection = Nothing End Sub Public Function Execute(ByVal strStatement As String) Recordset.Open strStatement, Connection, adOpenStatic MsgBox Recordset.RecordCount Recordset.Close End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Public Sub Test() Dim Db As New clsDatabase Db.Execute ("SELECT * FROM utilisateurs") End Sub
Partager