Boucle pour tester ouverture BD avec ADODB.Connection

blord

XLDnaute Impliqué
Bonjour à tous,

J'utilise le code suivant pour ouvrir une connexion vers une BD Access

Code:
Public Sub OuvrirConnexionBD(ByRef cn As ADODB.Connection)
'-------------
'Ouvre la connection à la BD Access
    On Error GoTo ErreurLocale

    Set cn = New ADODB.Connection
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & CHEMIN_COMPLET_BD & "; Jet OLEDB:Database Password=" & EXPR_PASSWORD
    Sheets("Validations").Range("B3").Value = "OK"

Exit Sub
ErreurLocale:
    Sheets("Validations").Range("B3").Value = "PASOK"
    Set cn = Nothing
End Sub

Le code ci-haut fonctionne parfaitement. Mais comme il est possible que plusieurs utilisateurs se connectent à la BD,
ce que j'aimerais faire, c'est mettre une boucle qui refait une tentative de connexion sur la BD si cette dernière n'était pas disponible...

J'ai essayé quelque chose du genre :

Code:
Public Sub OuvrirConnexionBD(ByRef cn As ADODB.Connection)
'-------
'Ouvre la connection à la BD Access
    On Error GoTo ErreurLocale

    Set cn = New ADODB.Connection
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & CHEMIN_COMPLET_BD & "; Jet OLEDB:Database Password=" & EXPR_PASSWORD
    Sheets("Validations").Range("B3").Value = "OK"

    Exit Sub

ErreurLocale:
    Sheets("Validations").Range("B3").Value = "PASOK"
    Set cn = Nothing

    Dim I As Integer
    I = 1
    Do While Worksheets("Validations").Range("B3").Value = "PASOK" Or I = 10


    I = I + 1
    Application.StatusBar = "Connexion BD " & I & " / " & 10
    Application.Wait (Now + TimeValue("0:00:01"))
    Set cn = Nothing
    Loop

    Resume
End Sub

Mais étant assez débutant avec ce genre de connexion, je ne réussi pas à faire une boucle qui fonctionne...
Si un âme généreuse pouvait me donner un coup de pouce, ce serait vraiment sympathique....


Si nécessaire, je pourrais mettre les fichiers en pièces jointes, n'hésitez pas à demander...

Merci !
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : Boucle pour tester ouverture BD avec ADODB.Connection

Bonjour Blord, le Forum

Une autre piste plutôt que de monter une usine à gaz en loop pour tester des connexions, je crois savoir que l'on peut parémétrer la connexion OLEDB Access en multi users :

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\server1\customer.mdb;Persist Security Info=False;Mode=Share Deny None;Jet OLEDB:Database Locking Mode=1;

Faire une recherche sur le net...

Il faut aussi savoir que le Provider Jet.OLEDB.4.0 est obsolete depuis office 2007 (remplacé par ACE.12.0)

Un exemple sur ACE.12.0 (le mode+16 serait le moyen de lettre la base sharable...)
Provider=Microsoft.ACE.OLEDB.12.0;Mode=16; Data Source=D:\\database.accdb;Persist Security Info=False

Faire aussi des recherches sur le net...

Bon courage
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 202
Messages
2 086 180
Membres
103 152
dernier inscrit
Karibu