如何在 Access 中的特定记录处打开表单

Posted

技术标签:

【中文标题】如何在 Access 中的特定记录处打开表单【英文标题】:How to open a form at a specific record in Access 【发布时间】:2014-07-04 15:52:36 【问题描述】:

我有一个包含个人记录的表格,带有一个按钮来查看/编辑个人许可。当我完成对许可的编辑并按下“返回”按钮后,我希望在我刚刚处理的记录中打开原始表单(基本个人信息),而不是返回到记录 1。

我目前的代码是

DoCmd.Close
DoCmd.OpenForm ("Basic Personal Information")

我已尝试将 OpenForm 更改为

DoCmd.OpenForm ("Basic Personal Information"), , , "S_ID=LinkRef"

其中 S_ID 是具有个人唯一 ID 的字段的名称,LinkRef 是该 ID 的整数。我尝试了一些小的变体并最终让它工作,但它打开了基本个人信息,只有一条记录可用,所以我无法查看表格上的任何其他人(即在左下角的记录中)导航它是 1 of 1,当它应该是例如 5 of 32)。

我尝试的另一件事是添加该行

DoCmd.GoToRecord(acDataForm,"Basic Personal Information",acGoTo,"[S_ID] = " & LinkRef)

但很明显,这里的问题是 AcGoTo 的 Offset 应该只是一个记录号,所以在这种情况下应该是 5。但我不知道如何告诉程序找出记录将是什么数字来自 LinkRef。

我希望这是有道理的,如果不能随意问我问题,我会尽力解释得更好,否则任何建议/方法将不胜感激。

谢谢

【问题讨论】:

DoCmd.OpenForm ("Basic Personal Information"), , , "S_ID=" & LinkRef 【参考方案1】:

我会这样解决你的问题:

DoCmd.OpenForm ("Basic Personal Information")
Forms("Basic Personal Information").Form.Recordset.FindFirst "[S_ID] = " & _
            Forms("PreviousForm").[LinkRef] & ""

意思是,我会先打开表单,然后将记录集的光标移动到所需的行。

【讨论】:

【参考方案2】:

也许这对你有帮助:尝试在对话框中打开表单:

DoCmd.OpenForm(“基本个人信息”)、、、、、、acDialog

【讨论】:

【参考方案3】:

查看此页面:http://msdn.microsoft.com/en-us/library/bb237964(v=office.12).aspx

我希望找到某种 indexOf() 方法,但我不知道包含的类叫什么。所以,这里有一个解决方法,因为我对 VB 不是很熟悉:

您可以使用GoToRecord 通过为第四个参数传入0 来转到第一条记录。然后,使用acNext 遍历所有记录,直到找到具有正确S_ID 值的条目。然后你可以停在那里,你的条目将是列表中的当前条目。

它远非完美或最佳,但如果没有其他选项,它会起作用

【讨论】:

以上是关于如何在 Access 中的特定记录处打开表单的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 VBA 在 Access 中关闭单个表单实例?

如何在 Access 中打开表单,自动选择组合框中的值并显示详细信息?

如何将 Microsoft Access 表单中的单个记录打印到报表中

Access 2007 添加记录使用相同的表单

从另一个表单打开具有匹配 AutoID 的 MS Access 表单

检查 Access 2010 导航子窗体是不是打开