Galven a écrit :
Merci, ça semble être un truc du genre.
Malheuresement, j'ai une erreur 1004 dès la ligne With ActiveWorkbook.Connections(1).OLEDBConnection
J'ai cherché sur google, mais j'ai pas trouvé la cause.
ActiveWorkbook.Connections(1).Name me renvoie bien le nom de la bonne connexion pourtant.
j'ai laissé le nom de ma table de test dans la commande il faut aussi que tu changes cette instruction, l'erreur pourrait bien provenir de là.
Private Sub Workbook_Open()
dbfile = "Database1.accdb" '<- mettre le nom du fichier access
dbfile = ThisWorkbook.Path & "\" & dbfile '<- on suppose que la DB est dans le même répertoire que le classeur
With ActiveWorkbook.Connections(1).OLEDBConnection
.BackgroundQuery = True
.CommandText = Array("Employees Extended") ' changer ici le nom de la table
.CommandType = xlCmdTable
.Connection = Array( _
"OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=" & dbfile & ";Mode=ReadWrite;Extended Properties=""""" _
, _
";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=6;Jet OLEDB:Databa" _
, _
"se Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Je" _
, _
"t OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Com" _
, _
"pact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False" _
)
.RefreshOnFileOpen = False
.SavePassword = False
.SourceConnectionFile = ""
.SourceDataFile = dbfile
.ServerCredentialsMethod = xlCredentialsMethodIntegrated
.AlwaysUseConnectionFile = False
End With
ActiveWorkbook.Connections("Database1").Refresh
ActiveWorkbook.RefreshAll
End Sub