【问题标题】:Access VBA: Unable to add new column without Error 3211访问 VBA:无法添加没有错误 3211 的新列
【发布时间】:2020-10-12 09:50:18
【问题描述】:

我正在尝试使用 VBA 将新列/字段添加到我新创建的表和新创建的数据库中,即表或数据库中绝对没有任何内容。我的代码如下:

Sub test()
    CurrentDb.Execute ("ALTER TABLE Table1 ADD COLUMN Column2 Text;")
End Sub

但是,这会导致以下错误消息:

Run-time error '3211':

The database engine could not lock table 'Table1' because it is already in use by another person or process.

我是唯一访问该表的用户。运行 VBA 代码的其他 sn-ps 可以正常工作,但是这段特定的代码会引发此错误。

我已尝试删除数据库并创建一个新数据库;关闭所有 Access 实例;并重新启动我的计算机,但仍然出现此错误。

【问题讨论】:

  • 尝试压缩和修复?除了主访问窗口之外,您是否打开了任何其他窗口?是否有任何可能打开隐藏窗口的启动宏?如果使用表设计器添加列会发生什么?
  • @ZevSpitz 不要认为紧凑和修复在这里会有所作为,因为我很高兴删除数据库并从头开始创建一个全新的数据库来测试此代码 sn-p。唯一打开的窗口是主 Access 窗口和内置的 VBA IDE。使用 UI 添加列效果很好。

标签: vba ms-access runtime-error


【解决方案1】:

如果您打开表,则会引发此错误。

因此,在调用您的函数之前,请确保 table1 已关闭。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    相关资源
    最近更新 更多