我有一个包含个人记录的表单,带有查看/编辑人员许可的按钮。当我完成编辑权限并按后退按钮时,我希望原始表单(基本个人信息)在我刚刚处理的记录处打开,而不是回到记录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
值的条目。然后你可以停在那里,你的条目将是列表中的当前条目。
它远非完美或最佳,但如果没有其他选项,它将工作