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?
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)Erreur d'exécution'-2147467259 (80004005)':
Impossible d'ouvrir une base de données crée avec une version antérieur de votre application.
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
Partager