访问确认消息

时间:2011-05-06 19:12:31

标签: ms-access

我有一个保存在网络位置的访问数据库,以便在该公司工作的600名员工中的任何一个都可以访问该数据库。当他们打开主窗体时,它会运行一个make-table查询。但是,MS Access会弹出一个弹出窗口,说明“您将要运行一个生成表查询,该查询将修改表中的数据。是否要继续?”

如果表单没有按是,那么表单将无法正常运行,因此我想要禁止此提示,以便它不会询问它们。我更改了选项>编辑/查找>确认菜单中的设置,以便它不会显示此确认。但是,这显然是一个本地设置,因此要强制执行此操作,每个用户都必须更改这些设置。

是否有其他可能的解决方案来抑制确认消息?

4 个答案:

答案 0 :(得分:3)

这里有很多错误,我几乎不知道从哪里开始:

  1. 您不可能拥有600人使用的Access数据库。

  2. 如果有多个人打开它并运行MakeTable,它将会中断,因为您将在两个用户之间进行结构更改。

  3. 关闭错误通知是一个巨大的错误。您不确切地知道可能最终忽略哪些错误。

  4. 关闭SetWarnings意味着您可以从SQL DML语句中获取不一致的更新,然后您无法知道哪些数据已更新。

  5. MakeTable查询不属于任何生产应用程序。相反,创建一个持久表,并将其清除并向其追加新记录。但它不属于您的主应用程序 - 这是临时数据的定义,因为它经常被替换,所以它需要在一个单独的临时数据库中。

  6. 您可能希望所有用户拥有自己的临时数据库,以便在多次打开应用程序时不会发生冲突。

答案 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事件来运行如上所述的启动代码。