尝试从现有表创建表(仅限结构)

时间:2017-04-21 09:03:22

标签: vba excel-vba access-vba excel

Set objAccess = CreateObject("Access.Application")
objAccess.DoCmd.rename "new_", 0, "new"

此处它将new重命名为new_,工作正常并重命名

Curmonth1  = [new]
Curmonth2  = [new_]

objAccess.DoCmd.RunSQL "SELECT * INTO" & Curmonth1 & "FROM" & Curmonth2 & "WHERE 1 = 2"

此查询有时正常工作,有时会抛出错误 运行时错误2501运行命令操作被取消 因为我在使用Access DB时将2个变量传递到VBA中的查询

也试过这个查询

objAccess.DoCmd.RunSQL "CREATE TABLE" & Curmonth1 & "AS SELECT * FROM" & Curmonth2 & "WHERE 1 = 2"

这根本不起作用。

帮帮我。任何其他可以工作的查询 我觉得应该在这两个查询之间进行一些数据库刷新。

1 个答案:

答案 0 :(得分:1)

如果要复制没有内容的表结构,请尝试:

'copy table without data with new name
    strPath = CurrentProject.FullName
    DoCmd.TransferDatabase acImport, "Microsoft Access", strPath, acTable, "SourceTableName", "NewTableName", True

编辑:作为一个(令人困惑的)单行:

DoCmd.TransferDatabase acImport, "Microsoft Access", CurrentProject.FullName, acTable, "SourceTableName", "NewTableName", True

编辑:在单独的子中尝试此代码并检查它是否有效(替换“SourceTableName”):

Sub testSub()

    DoCmd.TransferDatabase acImport, "Microsoft Access", CurrentProject.FullName, acTable, "SourceTableName", "NewTableName", True

End Sub