我有一个包含个人记录的表单,其中包含查看/编辑人员许可的按钮。当我完成编辑许可并按下后退按钮时,我希望原始表格(基本个人信息)在我刚刚处理的记录中打开,而不是回到记录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.但是我不知道怎么告诉程序弄清楚记录的数字是多少来自LinkRef。
我希望这是有道理的,如果没有随意问我问题,我会尽力解释,否则任何建议/方法都会受到赞赏。
由于
答案 0 :(得分:1)
我会这样解决你的问题:
DoCmd.OpenForm ("Basic Personal Information")
Forms("Basic Personal Information").Form.Recordset.FindFirst "[S_ID] = " & _
Forms("PreviousForm").[LinkRef] & ""
意思是,我首先打开表单,然后将记录集的光标移动到所需的行。
答案 1 :(得分:0)
也许这有助于你:尝试在对话框中打开表单:
DoCmd.OpenForm("基本个人信息"),,,,, acDialog
答案 2 :(得分:-1)
请参阅此页:http://msdn.microsoft.com/en-us/library/bb237964(v=office.12).aspx
我希望找到某种indexOf()方法,但我不知道包含类的内容是什么。所以,这是一个解决方法,因为我并不熟悉VB:
您可以使用GoToRecord
转到第一个记录,方法是将第四个参数传入0。然后,使用acNext
遍历所有记录,直到找到具有正确S_ID
值的条目。然后你可以在那里停下来,你的参赛作品将是名单中的当前名单。
它远非完美或最佳,但如果没有其他选择,它会起作用