2

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

我目前的代码是

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

我尝试将 OpenForm 更改为

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

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

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

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

但很明显,这里的问题是 AcGoTo 的 Offset 应该只是一个记录号,所以在这种情况下应该是 5。但我不知道如何告诉程序找出记录将从链接参考。

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

谢谢

4

3 回答 3

3

我会这样解决你的问题:

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

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

于 2014-07-06T12:18:48.860 回答
0

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

DoCmd.OpenForm ("基本个人信息"), , , , , acDialog

于 2014-07-06T11:59:20.743 回答
-1

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

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

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

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

于 2014-07-04T17:00:52.230 回答