我目前正致力於將100多種訪問數據庫從各種文件夾移動到另一組文件夾,並且需要更新對移動過程中將斷開的鏈接表的任何引用。我已經確定瞭如何通過增加一個宏來訪問數據庫本身做類似下面的更新鏈接數據庫表的位置:從VBS文件更新MS Access鏈接表
Dim tdf As TableDef, db As Database
Set db = CurrentDb
db.TableDefs.Refresh
For Each tdf In db.TableDefs
' My Logic for checking to see if it is is a linked
' table and then updating it appropriately
Next
Set collTables = Nothing
Set tdf = Nothing
Set db = Nothing
不過,我不希望有代碼添加到每個的訪問數據庫,所以我想知道是否有辦法創建一個VBS文件來執行相同類型的邏輯。我嘗試了以下代碼,但是當執行每個邏輯的行時,出現以下錯誤:「參數的類型錯誤,超出了可接受的範圍或者與另一個衝突」
Set MyConn = CreateObject("ADODB.Connection")
MyConn.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = MyFile.mdb"
for each tblLoop in db.TableDefs
' business logic
next
set tblLoop = nothing
MyConn.close
set MyConn = nothing
我希望有人更熟悉做這種類型的編碼將能夠指出我在正確的方向。有沒有一種方法可以通過VBS文件從Access外部使用TableDefs表,如果是這樣,那麼代碼將如何。
感謝, 傑里米
您是否考慮過使用僅由VBA模塊組成的新數據庫作爲簡單的一次性應用程序,而不是使用VBS文件?換句話說,創建一個新的數據庫,添加一個VBA模塊,並編寫代碼來打開每個MDB文件並執行您的邏輯,或者,如果可能的話,建立一個ADODB連接而不是打開每個文件? – Banjoe
@Banjoe我確實想到完全按照你所描述的方式去做,但只是想先評估所有的選項。我需要做的一件事就是查看目錄中的所有文件並動態更新鏈接表的位置。我認爲利用VBS而不是VBA會更容易,但我還沒有證明這一點。感謝您的迴應。 – jwmajors81