我有一个保存在网络位置的访问数据库,以便在该公司工作的600名员工中的任何一个都可以访问该数据库。当他们打开主窗体时,它会运行一个make-table查询。但是,MS Access会弹出一个弹出窗口,说明“您将要运行一个生成表查询,该查询将修改表中的数据。是否要继续?”
如果表单没有按是,那么表单将无法正常运行,因此我想要禁止此提示,以便它不会询问它们。我更改了选项>编辑/查找>确认菜单中的设置,以便它不会显示此确认。但是,这显然是一个本地设置,因此要强制执行此操作,每个用户都必须更改这些设置。
是否有其他可能的解决方案来抑制确认消息?
答案 0 :(得分:3)
这里有很多错误,我几乎不知道从哪里开始:
您不可能拥有600人使用的Access数据库。
如果有多个人打开它并运行MakeTable,它将会中断,因为您将在两个用户之间进行结构更改。
关闭错误通知是一个巨大的错误。您不确切地知道可能最终忽略哪些错误。
关闭SetWarnings意味着您可以从SQL DML语句中获取不一致的更新,然后您无法知道哪些数据已更新。
MakeTable查询不属于任何生产应用程序。相反,创建一个持久表,并将其清除并向其追加新记录。但它不属于您的主应用程序 - 这是临时数据的定义,因为它经常被替换,所以它需要在一个单独的临时数据库中。
您可能希望所有用户拥有自己的临时数据库,以便在多次打开应用程序时不会发生冲突。
答案 1 :(得分:2)
是的,来自VBA:
DoCmd.ShowWarnings False ' Don't show warning popup
DoCmd.RunQuery "MyMakeTableQuery" ' Run the make table query silently
DoCmd.ShowWarnings True ' Turn warnings back on
答案 2 :(得分:2)
使用DoCmd.SetWarnings False
停止弹出消息框。但是,请注意,此操作对Access应用程序是全局的。您必须根据需要使用DoCmd.SetWarnings True
重新启用警告。
答案 3 :(得分:0)
您也可以尝试:
Application.SetOption "Confirm Action Queries", False
如果您还没有,则可能希望每次打开数据库时都打开隐藏的表单。您可以使用该表单的OnOpen事件来运行如上所述的启动代码。