Réponse acceptée !
salut
Copie ce code dans un nouveau module de classe, crée ton objet ... et récupère ton recordset en sortie !!
_______________________________________________________________
'Chaine de connexion à Access
Const StrCNN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\tabase.mdb;user id=admin; password=;"
Dim CNN As ADODB.Connection
'****************** ouverture de la connexion à l'initialisation de l'objet ****************
Private Sub Class_Initialize()
On Error Resume Next '* prise en compte d'une erreur de connexion
Set CNN = New ADODB.Connection '* instanciation de la connexion
CNN.ConnectionString = StrCNN '* StrCNN variable publique définie plus haut
CNN.Open '* ouverture de la connexion
If Err.Number <> 0 Then
MsgBox "Connexion à la base de données impossible" & vbCrLf & Err.Description, vbExclamation, "ERREUR DE CONNEXION"
End If
End Sub
'******************* fermeture de la connexion à la destruction de l'objet ****************
Private Sub Class_Terminate()
CNN.Close '* fermeture de la connexion
Set CNN = Nothing '* destruction de la connexion
End Sub
'************** ICI TU METS TA FONCTION'********************************************************************************************
Public Function Ta_Fonction(tes_paramètres as parametres) As type_résultat
Dim strSQL As String
Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
On Error Resume Next
cmd.ActiveConnection = CNN '* affectation de la connexion à la commande
cmd.CommandType = adCmdText '* définition du type de commande
rs.CursorLocation = adUseClient '3 réglage du curseur
rs.CursorType = adOpenStatic '3
rs.LockType = adLockReadOnly '1
strSQL = "SELECT tes_données FROM ta_table WHERE condition"
cmd.CommandText = strSQL '* définition de la requête
rs.Open cmd 'cmd en paramètre de l'ouverture du RS
'***********************************************
If Err.Number <> 0 Then '* teste un éventuel plantage
MsgBox cmd.CommandText & Err.Description '*
End If '*
'***********************************************
If Not rs.EOF Then '* teste si le RS n'est pas vide
rs.MoveFirst
Ta_Fonction = rs(0)
End If
rs.Close
Set rs = Nothing
Set cmd = Nothing
End Function
Si tu as besoin de plus d'explication ... n'hésite pas, je me sers aussi pas mal des forums pour essayer de progresser :-)
Private void Ssmiling 