1

我已经成功创建了一个 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
4

1 回答 1

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 数据库并执行宏?

我是否正确理解这一点?
如果是:您根本不需要 VBS 文件,如果它只打开 Access 数据库什么都不做。
您可以直接使用 Windows 任务计划程序执行 Access 数据库。
如果您命名宏autoexec,它将在 Access 数据库打开时自动执行。

于 2013-08-15T20:34:58.877 回答