我目前正致力于将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