我已经成功创建了一个VBS文件,Windows任务计划程序可以通过触发Access宏来从我的数据库中导出数据。现在我需要导入 - 大多数步骤都很简单,可以在Access宏中实现,但我需要先重新创建表链接(字段名称和位置经常在源文件中更改,除非我先删除和重新创建链接。) 这是VBA代码 - 我错过了相应的宏动作吗?
'delete and recreate links to Account and Company
Dim db As DAO.Database
' Re-link the CSV Table
Set db = CurrentDb
On Error Resume Next: db.TableDefs.Delete "Contact": On Error GoTo 0
db.TableDefs.Refresh
DoCmd.TransferText TransferType:=acLinkDelim, TableName:="Contact", _
FileName:="c:\db\contact.csv", HasFieldNames:=True
db.TableDefs.Refresh
On Error Resume Next: db.TableDefs.Delete "Account": On Error GoTo 0
db.TableDefs.Refresh
DoCmd.TransferText TransferType:=acLinkDelim, TableName:="Account", _
FileName:="c:\db\account.csv", HasFieldNames:=True
db.TableDefs.Refresh
db.Close
Set db = Nothing
答案 0 :(得分:1)
是的,您错过的宏观操作称为Run Code
。
唯一需要注意的是Run Code
只能调用VBA函数。因此,您不能只将代码粘贴到宏中。相反,您需要将其放入MS Access模块中的VBA函数,如下所示:
Public Function ReCreateTableLinks()
'delete and recreate links to Account and Company
Dim db As DAO.Database
'... paste the rest of your code here
End Function
顺便说一句,你是说你正在使用Windows任务计划程序,它调用一个VBS文件,打开Access数据库并执行宏?
我是否正确理解这一点?
如果是:如果除了打开Access数据库之外什么都不做,则根本不需要VBS文件
您可以直接使用Windows任务计划程序执行Access数据库
如果您命名宏autoexec
,它将在Access数据库打开时自动执行。