我正在尝试在访问中编写一个简单的VBA,将一个表复制到另一个访问数据库并重命名。
这是我的代码:
sub copy_table ()
dim destDB as string
destDB = "Y:\GDA_files\MI1.mdb"
docmd.copyobject destDB, "Progress tracking 1", acTable= acDefault, "Progress tracking " & date
end sub
但是我收到了消息
运行时错误'2501':
CopyObject操作已取消
我不知道为什么会出现这种错误。 有什么想法吗?
答案 0 :(得分:0)
您是否尝试将表名放在后引号之间?
https://docs.microsoft.com/en-us/sql/odbc/microsoft/table-name-limitations 中的表名称可以包含任何有效字符(例如,空格)。如果 表名包含除字母,数字和之外的任何字符 下划线,名称必须用后面的引号将其分隔 (`)。
答案 1 :(得分:0)
DoCmd.CopyObject(DestinationDatabase, NewName, SourceObjectType, SourceObjectName)
您可能混淆了NewName
和SourceObjectName
参数。
并且acTable= acDefault
毫无意义。
尝试:
' this will sort table names chronologically
strNewName = "Progress tracking " & Format(Date(), "yyyy-mm-dd")
DoCmd.CopyObject destDB, strNewName, acTable, "Progress tracking 1"