【问题标题】:Problems with: Access 2007, VBA, Parent-Child Forms, Recordset Not updatable存在的问题:Access 2007、VBA、父子表单、记录集不可更新
【发布时间】:2012-05-08 16:58:54
【问题描述】:

这很复杂。我对 Access 不太熟悉,而且我是一名程序员(意思是,我可能会让自己变得更难,而没有看到“简单”的答案)。

让我们考虑(示例): 我们有一个图书馆数据库。我有一本书的特定副本。我的书可以有几种状态:已签出、上架、已销毁、闻起来很奇怪/很粘/无法使用……我需要/在 Access 中有两种表格。一个用于我的书的基本信息,另一个用于实际更新状态。随着状态的变化,需要记录大量数据,因此需要单独的表格。书单本身只包含基本信息和出租历史的小子表格;书的形式需要包括当前状态。我的实际状态表有一个 statusid、bookid、timestamp。

现在...因为我不知道 Access 会遇到问题...我没有绑定我的书和状态表格,并用来自 VBA 的记录/查询填充它们。但是当我试图将两者联系起来时,它对我大喊大叫; “未绑定”它告诉我。我认为这很好,并将查询移到实际的前端访问查询部分(左侧)并移出 vba 并适当地绑定我的表单。但现在。它说我的记录集不可更新。我假设是因为我使用了连接和嵌套选择语句等来获取本书的当前状态。我只需要能够修改这些文本字段,我就可以自己编写插入/更新。我在网上发现了一些东西说要创建一个表,但我也读到这在多用户环境中不起作用。当书籍表单打开并且用户单击按钮以更改我的书籍的状态并保存/关闭该状态表单时,我确实需要能够重新查询书籍表单以显示更新的状态。

那么...我该怎么办?

【问题讨论】:

  • 哦。我是否只需要将 book 表单绑定到 book 表,并且不在该表中的任何额外数据(如当前状态)通过 vba 查询获得?并通过 Form_Current() 处理更新它?

标签: ms-access vba


【解决方案1】:

如果我对您的理解正确,您的问题是您在主表单中有一个复杂的查询,并且想要打开第二个表单来更新该查询的一个基础表,然后想要更改新打开的表单中的当前记录并保存它然后重新查询原始表格? 我了解您是一名程序员,因此在我看来,最通用的方法是: 主窗体上的按钮,以模式模式打开具有正确记录的新窗体(确保在模式窗体关闭后执行原始窗体代码的其余部分),在模式窗体中发挥你的作用,然后重新查询主窗体。

试试这样的:

Private Sub myButton_Click()
  DoCmd.OpenForm "myEditForm", acNormal, , ID = 4, acFormEdit, acDialog
  me.requery
End Sub

【讨论】:

    猜你喜欢
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 2013-01-28
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    相关资源
    最近更新 更多