Passer un recordset en paramètre
Bonjour,
Je n'arrive pas à ouvrir une table d'une base de donnée depuis une sub dédiée.
L'ouverture de la base ("ouverture_BDD") ne pose aucun souci.
Cependant, l'appel à la sub "ouverture_table" entraine une erreur de type "ByRef incompatible" sur le champs ArticleRecordset.
Par ailleurs je suis obligé d'utiliser le "late binding".
Je vous sollicite donc pour savoir comment passer en paramètre un objet qui sera instancié comme un recordset et que je pourrai utiliser ultérieurement dans ma procédure "main()".
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
Global ArticleRecordset As Object
Global ObjetBaseNationale As Object
Sub main()
...
Call ouverture_BDD("lecture_seule", ObjetBaseNationale, "J:\XXX.QDB")
Call ouverture_table(ObjetBaseNationale, "Articles", ArticleRecordset)
...
End Sub |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
Sub ouverture_BDD(option_ouverture As String, ByRef base As Object, chemin As String)
If option_ouverture = "lecture_seule" Then
Const adModeRead = 1
End If
Set base = CreateObject("ADODB.Connection")
With base
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionTimeout = 30
.mode = adModeRead
.ConnectionString = "Data Source=" & chemin & ";"
.Open
End With
End Sub |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
Sub ouverture_table(ByRef base As Object, nom_table As String, table As Object)
Dim command_sql As Object
Const adCmdText = 1
Set command_sql = CreateObject("ADODB.Command")
With command_sql
.ActiveConnection = base
.CommandType = adCmdText
.CommandText = "SELECT * FROM " & nom_table
End With
Set table = command_sql.Execute
End Sub |
Par avance,
Merci