Module de classe : base de données adodb

Contenu du snippet

C'est juste un petit module de classe basé sur une source sur ce site.
C'est d'un niveau débutant. Il permet de se connecter à une base de données ACCESS ou une autre en ADODB.

Source / Exemple :


Option Explicit

' /// Variables pour la Connexion ADODB /////////////////////////////////////////////////////////////////////////////////////////
Private pdbConnection As New ADODB.Connection
Private pdbRecordsetADO As New ADODB.Recordset

' /// variables locales de stockage des valeurs de propriétés  //////////////////////////////////////////////
Private cTempdbPath As String 'copie locale
Private cTempdbType As String 'copie locale
Private cTempdbUser As String 'copie locale
Private cTempdbDriver As String 'copie locale
Private cTempdbPassword As String 'copie locale
Private cTempdbServeur As String 'copie locale
Private cTempdbDSN As String 'copie locale
Private cTempdbName As String 'copie locale

Public Property Let dbName(ByVal vData As String)
    cTempdbName = vData
End Property

Public Property Get dbName() As String
    dbName = cTempdbName
End Property

Public Property Let dbDSN(ByVal vData As String)
    cTempdbDSN = vData
End Property

Public Property Get dbDSN() As String
    dbDSN = cTempdbDSN
End Property

Public Property Let dbServeur(ByVal vData As String)
    cTempdbServeur = vData
End Property

Public Property Get dbServeur() As String
    dbServeur = cTempdbServeur
End Property

Public Property Let dbPassword(ByVal vData As String)
    cTempdbPassword = vData
End Property

Public Property Get dbPassword() As String
    dbPassword = cTempdbPassword
End Property

Public Property Let dbDriver(ByVal vData As String)
    cTempdbDriver = vData
End Property

Public Property Get dbDriver() As String
    dbDriver = cTempdbDriver
End Property

Public Property Let dbUser(ByVal vData As String)
    cTempdbUser = vData
End Property

Public Property Get dbUser() As String
    dbUser = cTempdbUser
End Property

Public Property Let dbType(ByVal vData As String)
    cTempdbType = vData
End Property

Public Property Get dbType() As String
    dbType = cTempdbType
End Property

Public Property Let dbPath(ByVal vData As String)
    cTempdbPath = vData
End Property

Public Property Get dbPath() As String
    dbPath = cTempdbPath
End Property

' /// Ouverture de la Base de Données /////////////////////////////////////////////////////////////////////////

Public Function Connexion() As Long
On Error GoTo Connexion_Error

    Select Case cTempdbType
        Case "ACCESS"
            pdbConnection.Provider = cTempdbDriver
            pdbConnection.ConnectionString = cTempdbPath
            pdbConnection.Open
            
        Case "AUTRE"
            If Len(cTempdbDSN) > 0 Then
                pdbConnection.ConnectionString = "DSN=" & cTempdbDSN & "UID=" & cTempdbUser & ";PWD=" & cTempdbPassword & ";"
            Else
                pdbConnection.ConnectionString = "UID=" & cTempdbUser & ";PWD=" & cTempdbPassword & ";" & "DRIVER=" & cTempdbDriver & ";Server=" & cTempdbServeur & ";Database=" & cTempdbName & ";"
            End If
            
            pdbConnection.Open
    End Select
   
    On Error GoTo 0
    Exit Function

Connexion_Error:
    Connexion = Err.Number
'    MsgBox "Erreur " & Err.Number & " (" & Err.Description & ") dans la procédure Connexion dans Module de classe cDataBase", vbCritical
End Function

' /// Envoi du RecordSet //////////////////////////////////////////////////////////////////////////////////////

Public Function OpenRecordSet(dbSQL As String, Optional dbOption) As ADODB.Recordset
On Error GoTo OpenRecordSet_Error

    If dbSQL <> "" Then
        pdbRecordsetADO.CursorLocation = adUseClient
        pdbRecordsetADO.CursorType = adOpenDynamic
        pdbRecordsetADO.LockType = adLockOptimistic
        pdbRecordsetADO.Open dbSQL, pdbConnection
        Set OpenRecordSet = pdbRecordsetADO
        Set pdbRecordsetADO = Nothing
    End If
    
   
    On Error GoTo 0
    Exit Function

OpenRecordSet_Error:

    MsgBox "Erreur " & Err.Number & " (" & Err.Description & ") dans la procédure OpenRecordSet dans Module de classe cDataBase", vbCritical
End Function

' /// Exécution d'une Requête SQL /////////////////////////////////////////////////////////////////////////////

Public Sub Execute(dbSQL As String)
On Error GoTo Execute_Error

    pdbConnection.Execute dbSQL
   
    On Error GoTo 0
    Exit Sub

Execute_Error:

    MsgBox "Erreur " & Err.Number & " (" & Err.Description & ") dans la procédure Execute dans Module de classe cDataBase", vbCritical
End Sub

' /// Fermeture de la connexion avec la Base de Données ///////////////////////////////////////////////////////

Public Sub Fermeture()
On Error GoTo Fermeture_Error

    pdbConnection.Close
    Set pdbConnection = Nothing
   
    On Error GoTo 0
    Exit Sub

Fermeture_Error:

    MsgBox "Erreur " & Err.Number & " (" & Err.Description & ") dans la procédure Fermeture dans Module de classe cDataBase", vbCritical
End Sub

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.