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



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

我现在的代码是

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

我已经尝试将OpenForm更改为

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

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

我尝试的另一件事是添加 行
DoCmd.GoToRecord(acDataForm,"Basic Personal Information",acGoTo,"[S_ID] = " & LinkRef)

但很明显,这里的问题是AcGoTo的偏移量应该只是一个记录数字,所以在这种情况下应该是5。但是我不知道如何告诉程序从LinkRef中找出记录的编号。

我希望这是有意义的,如果没有问题,请随时问我,我会尽量更好地解释,否则任何建议/方法将不胜感激。

谢谢

我将这样处理你的问题:

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

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

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

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

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

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

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

它远非完美或最佳,但如果没有其他选项,它将工作

相关内容

  • 没有找到相关文章

最新更新