Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA. Accès à des données externes d'une BdD Access

1 réponse
Avatar
HD
Bonjour,

A partir d'un Excel 2003 sur lequel il y'a Access 2003 je peux accèder sans
problème à une base de donnée via ce script.

With ActiveSheet.QueryTables.Add(Connection:=Array( _
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User
ID=Admin;Data Source=\\Berson02\Coala\local\bases\tgi.mdb;Mode=Share Deny
Writ" _
, _
"e;Extended Properties="""";Jet OLEDB:System database="""";Jet
OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine"
_
, _
" Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial
Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New" _
, _
" Database Password="""";Jet OLEDB:Create System Database=False;Jet
OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Com" _
, _
"pact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet
OLEDB:SFP=False" _
), Destination:=Sheets(TempFeuil).Range("A1"))
.CommandType = xlCmdTable
.CommandText = Array("ReqDAHTps")
.Name = "tgi"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = "\\Bn02\bases\tgi.mdb"
.Refresh BackgroundQuery:=False
End With

Mais si je lance cette macro à partir d'un poste qui a Excel 2003 sans avoir
Access 2003 alors là ça plante...

Y'a-t-il un moyen d'accèder à la requête sur ces postes?

Merci d'avance pour votre aide.
--
@+
HD

1 réponse

Avatar
Laurent Longre
Normalement Microsoft Jet fonctionne indépendamment d'Access. Vérifie que c'est
bien Jet 4.0 qui est installé sur cet ordi et pas une version antérieure. Tu
peux trouver la dernière version (SP8) ici : http://minilien.com/?BxAt3E1MwN.

Laurent

Bonjour,

A partir d'un Excel 2003 sur lequel il y'a Access 2003 je peux accèder sans
problème à une base de donnée via ce script.

With ActiveSheet.QueryTables.Add(Connection:=Array( _
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User
ID­min;Data Source¾rson02Coalalocalbasestgi.mdb;Mode=Share Deny
Writ" _
, _
"e;Extended Properties="""";Jet OLEDB:System database="""";Jet
OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine"
_
, _
" Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial
Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New" _
, _
" Database Password="""";Jet OLEDB:Create System Databaseúlse;Jet
OLEDB:Encrypt Databaseúlse;Jet OLEDB:Don't Copy Locale on Com" _
, _
"pactúlse;Jet OLEDB:Compact Without Replica Repairúlse;Jet
OLEDB:SFPúlse" _
), Destination:=Sheets(TempFeuil).Range("A1"))
.CommandType = xlCmdTable
.CommandText = Array("ReqDAHTps")
.Name = "tgi"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = "Bn02basestgi.mdb"
.Refresh BackgroundQuery:úlse
End With

Mais si je lance cette macro à partir d'un poste qui a Excel 2003 sans avoir
Access 2003 alors là ça plante...

Y'a-t-il un moyen d'accèder à la requête sur ces postes?

Merci d'avance pour votre aide.