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

时间:2014-07-04 15:52:36

标签: vba ms-access ms-access-2010 openform

我有一个包含个人记录的表单,其中包含查看/编辑人员许可的按钮。当我完成编辑许可并按下后退按钮时,我希望原始表格(基本个人信息)在我刚刚处理的记录中打开,而不是回到记录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。

我希望这是有道理的,如果没有随意问我问题,我会尽力解释,否则任何建议/方法都会受到赞赏。

由于

3 个答案:

答案 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值的条目。然后你可以在那里停下来,你的参赛作品将是名单中的当前名单。

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