Bonjour à tous,

En cherchant à ouvrir une base de données en .mdb j'en suis arrivé à utilisé une macros (fournie grâce à l'aide des forums) qui ouvre cette base de données. L'idée est maintenant de lier tout simplement la BDD et travailler sous PowerQuery. Le problème que je rencontre est que cette macros fonctionne sur ma machine perso et pas ma pro. Est ce que vous auriez une idée d'où regarder pour corriger cette erreur?

Erreur d'exécution'-2147467259 (80004005)':
Impossible d'ouvrir une base de données crée avec une version antérieur de votre application.
C'est le même message d'erreur que lorsque j'essaye d'ouvrir le .mdb avec Access 2016 (d'où le passage détourné par Excel)

Machine perso:
Windows 10 Familiale 64bits, Excel 2016 pro 64bits

Machine pro:
Windows 10 Pro 64 bits, Excel 2016 Office 365 64bits

Sur les 2 machines j'ai les même références dans la librairie et dans le même ordre
  • Visual Basic For Applications
  • Microsoft Excel 16.0 Object Library
  • OLE Automatisation
  • Microsoft Office 16.0 Object Library
  • Microsoft Forms 2.0 Object Library
  • Microsoft Windows Common Controls 6.0 (SP6)


Je suis persuadé qu'il doit y avoir une histoire d'autorisation (j'ai checké les REGSVR32 il me semble similaire) ou de répertoire de fichier .dll manquant ou autre, mais impossible de savoir.
Est ce que vous auriez une idée de comment je peux trouver et corriger cet écart entre mes 2 machines?

Merci d'avance.

PS: La macro concernée est la suivante: (J'ai essayé avec le JET.OLEDB.4.0 mais sous office 64bits... )

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
40
41
42
43
44
Option Explicit
 
'Public Const PRVD = "DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ="
Public Const PRVD = "PROVIDER=MICROSOFT.ACE.OLEDB.12.0;DATA SOURCE="
 
 
Sub RAZ()
Dim Feuil As Worksheet
 
    Application.DisplayAlerts = False
    For Each Feuil In ThisWorkbook.Sheets
        If Not Feuil.Name = "Feuil1" Then Feuil.Delete
    Next Feuil
    Application.DisplayAlerts = True
End Sub
 
 
Sub lister_tables()
Dim BDD As String
Dim Cnx As Object, Cat As Object, Tbl As Object
 
    BDD = NDF_A_LIRE
    If Not BDD = "Faux" Then
        Set Cnx = CreateObject("ADODB.Connection")
        Cnx.Open PRVD & BDD
 
        Set Cat = CreateObject("ADOX.Catalog")
        Set Cat.activeconnection = Cnx
 
        Set Tbl = CreateObject("ADOX.Table")
        For Each Tbl In Cat.Tables
            If Tbl.Type = "TABLE" Then
                Sheets.Add After:=ActiveSheet
                ActiveSheet.Name = Tbl.Name & "_"
                lirecontenu BDD, Tbl.Name
            End If
        Next
 
        Cnx.Close
        Set Cnx = Nothing
        Set Cat = Nothing
        Set Tbl = Nothing
    End If
End Sub