Bonjour,

Dans l'excellent article de Dolphy35 http://dolphy35.developpez.com/artic.../basesreseaux/, celui-ci nous propose comment utiliser une application en mode multi-utilisateurs. Dans cet article, un code VBA vous est proposé afin de lier par code vos tables à la source de données. Cet exemple utilise la technologie DAO. Je vous propose donc une réadaptation du code en utilisant la technologie ADO.

Cela exige d'avoir référencé les librairies suivantes :
- Microsoft Ado ext 2.x for DLL and security,
- Microsof ActiveX Data objects x.x library (nécessaire à la manipulation des accès en ADO)

Cette fonction comporte en entrée le chemin de la base source à lier au projet, et retourne true ou false en fonction de la nature de retour.
Chacun pourra réadapter ce source et faire part de ses critiques....



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
28
29
30
31
32
33
34
35
36
37
38
39
Public Function LierTables(strChmFichier) As Boolean
'
' Rafraichissement des liens de la table
' Recoit en argument la source de données à lier localement
' Renvoit False en cas d'erreur
'
    On Error GoTo err_LierTables
    'Déclaration des variables
    '
    Dim tbdTables As New ADOX.Table
    Dim catSrc As New ADOX.Catalog
    '
    'Initialise le retour de la Fonction
    LierTables = False
    '
    Set catSrc.ActiveConnection = CurrentProject.Connection
    For Each tbdTables In catSrc.Tables     ' Retourne la collection de tables dans le projet courant
    '
            If tbdTables.Type = "Link" Then    ' il s'agit d'une table liée dans le projet courant
 
                tbdTables.Properties("Jet OLEDB:Link Datasource") = strChmFichier
 
            End If
    Next
    '
    Set tbdTables = Nothing
    '
    CurrentProject.Connection.Close
    '
    Set catSrc = Nothing
    '
    LierTables = True
    Exit Function
err_LierTables:
    LierTables = False
    MsgBox Err.Description
    '
    Exit Function
End Function
JimBoLion