【问题标题】:Access Set Unbound Form to Current Record访问将未绑定表单设置为当前记录
【发布时间】:2015-06-02 23:06:22
【问题描述】:

第一次发帖,希望这有点道理。我正在使用命令按钮和 .AddNew 方法将数据从未绑定的文本框中添加到表中。此时表单本身仍受约束。仅供参考,我正在使用未绑定的框,因为连接 tbls 所需的 UI 不是一个选项。我可以毫无问题地将数据添加到表中。问题是添加记录后,表单的当前记录与添加之前保持在同一记录上,但我希望它在新记录上。我正在使用“rst.Bookmark = rst.LastModified”将光标设置到表中的新记录,并且似乎可以工作,因为我可以返回新记录的值......但这不会影响表单。我尝试过使用“Requery”和“CurrentRecord”,但都没有解决问题。

总而言之,在向表格添加新记录后,我希望表单的当前记录引用这条新记录。例如,如果我在表格中的第 12 条记录中添加一条新记录,使总记录达到 25 条——我希望表格记录在“25 条中的 25 条”而不是“25 条中的 12 条”中。你能告诉我怎么做吗?感谢您的帮助!

    With rst

    .AddNew
        !Event = Forms!MainForm!Event
        !DonorName = Forms!MainForm!DonorName
        !EnvNo = Forms!MainForm!EnvNo
    .Update

    .MoveLast
    .MoveFirst

  End With

rst.Bookmark = rst.LastModified

''' Record count total - show on form - confirmed/same as Access Navigation display
Forms!MainForm!txtTotalRec.Value = rst.RecordCount

''' Current Record - show on form - confirmed/same as Access Navigation display
lngCurrent = Forms!MainForm.CurrentRecord
Forms!MainForm!txtCurrRec.Value = lngCurrent

【问题讨论】:

  • 简单的 goto last 记录怎么样? DoCmd.GoToRecord acActiveDataObject, , acLast
  • 太好了,这就是我所缺少的 - 如果您想发布作为答案,我们很乐意接受。这将我带到添加的最后一条记录的下一个,因此我在它之前插入了“Forms!MainForm.Requery”,然后它转到最后一条记录 - 谢谢!

标签: ms-access vba


【解决方案1】:

根据您的试用。只需在 me.requery 之后执行 DoCmd.GoToRecord acActiveDataObject, acLast 即可更新记录集。

【讨论】:

  • 谢谢!查看之前的评论
【解决方案2】:

它应该可以工作,因为addnew 方法不需要movelast 操作。你可以尝试用set me.recordset = me.recordset刷新表单

【讨论】:

  • 谢谢,正如您所指出的 DoCmd.... 确实有效,但您继续指出,表单仍需要刷新。我尝试了“设置 me.recordset = me.recordset”来刷新,但没有按我的需要工作。最终使用了上面 cmets 中所述的“重新查询”方法——感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多