【发布时间】:2015-09-29 12:13:14
【问题描述】:
我遇到了这个非常奇怪的问题。
conn.Execute "INSERT INTO tbl " & _
"SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" & ThisWorkbook.FullName & "].[temp$]"
当我以读写方式运行此代码时,它可以工作。当我在文件是只读的情况下运行它时,代码崩溃并给我这个错误:“外部表不是预期的格式”。
我的连接字符串是(MS Access DB):
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath & ";Jet OLEDB:Database Password=mypass;Persist Security Info=True"
我不知道还能说什么……这与我遇到的任何事情都不一样。在读写而不是只读的情况下完美运行的东西真是太奇怪了。
感谢您的帮助。
【问题讨论】:
-
你是说不能以只读方式写入表很奇怪吗?
-
没有。数据库保留在 RW 中。它是代码来自的 Excel 文件,即 RW 或 RO。但通常 RW 或 RO 中的代码是相同的代码...
-
嗯嗯...我可能正在做某事。我已经阅读了有关将 [Excel 12.0 Macro;...] 用于 .xlsm 的信息。因此,我尝试将 ThisWorkbook.FullName(它是一个 .xlsm)替换为包含具有相同数据的相同工作表的 .xls 源。有效。它仍然没有解释为什么它在 RW 而不是 RO 中工作。
标签: database excel vba ms-access-2007