1

Access DBへの外部データ接続を使用するtool.xlsxファイルがあります(どちらもネットワークドライブ上にあり、適切なアクセス権を持つユーザーが利用できます)。そのブック内のすべての接続を更新する vbscript (以下のコード) があります。このスクリプトを実行しているときはすべてが魅力的に機能しますが、同僚が実行するとエラーは発生しませんが、すべての接続が更新されるわけではありません。何か案は?

Dim XLApp
Dim XLWkb
Set XLApp = CreateObject("Excel.Application")
xlapp.visible = false
xlapp.workbooks.open "\\networkpath\tool.xlsx"
xlapp.displayalerts = false
set wr = xlapp.workbooks.Open("\\networkpath\tool.xlsx")
wr.refreshall
xlapp.visible = false
wr.Save
wr.Close

そして、その tool.xlsx ワークブックからの接続文字列は次のとおりです。

Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=\\networkpath\db.accdb;Mode=Share Deny Write;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Engine Type=6;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 Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False;Jet OLEDB:Limited DB Caching=False;Jet OLEDB:Bypass ChoiceField Validation=False

各接続を一度に更新する別の方法を次に示します。

on error resume next
Dim XLApp
Dim XLWkb
Set XLApp = CreateObject("Excel.Application")
xlapp.visible = false
xlapp.displayalerts = false
set wr = xlapp.workbooks.open("\\networkpath\tool.xlsx")
    for each Cn in wr.Connections
        Cn.Refresh
    next
wr.refreshall
xlapp.visible = false
wr.Save
wr.Close
4

0 に答える 0