如何在 Access 中的特定记录处打开表单
Posted
技术标签:
【中文标题】如何在 Access 中的特定记录处打开表单【英文标题】:How to open a form at a specific record in Access 【发布时间】:2014-07-04 15:52:36 【问题描述】:我有一个包含个人记录的表格,带有一个按钮来查看/编辑个人许可。当我完成对许可的编辑并按下“返回”按钮后,我希望在我刚刚处理的记录中打开原始表单(基本个人信息),而不是返回到记录 1。
我目前的代码是
DoCmd.Close
DoCmd.OpenForm ("Basic Personal Information")
我已尝试将 OpenForm 更改为
DoCmd.OpenForm ("Basic Personal Information"), , , "S_ID=LinkRef"
其中 S_ID 是具有个人唯一 ID 的字段的名称,LinkRef 是该 ID 的整数。我尝试了一些小的变体并最终让它工作,但它打开了基本个人信息,只有一条记录可用,所以我无法查看表格上的任何其他人(即在左下角的记录中)导航它是 1 of 1,当它应该是例如 5 of 32)。
我尝试的另一件事是添加该行
DoCmd.GoToRecord(acDataForm,"Basic Personal Information",acGoTo,"[S_ID] = " & LinkRef)
但很明显,这里的问题是 AcGoTo 的 Offset 应该只是一个记录号,所以在这种情况下应该是 5。但我不知道如何告诉程序找出记录将是什么数字来自 LinkRef。
我希望这是有道理的,如果不能随意问我问题,我会尽力解释得更好,否则任何建议/方法将不胜感激。
谢谢
【问题讨论】:
DoCmd.OpenForm ("Basic Personal Information"), , , "S_ID=" & LinkRef
【参考方案1】:
我会这样解决你的问题:
DoCmd.OpenForm ("Basic Personal Information")
Forms("Basic Personal Information").Form.Recordset.FindFirst "[S_ID] = " & _
Forms("PreviousForm").[LinkRef] & ""
意思是,我会先打开表单,然后将记录集的光标移动到所需的行。
【讨论】:
【参考方案2】:也许这对你有帮助:尝试在对话框中打开表单:
DoCmd.OpenForm(“基本个人信息”)、、、、、、acDialog
【讨论】:
【参考方案3】:查看此页面:http://msdn.microsoft.com/en-us/library/bb237964(v=office.12).aspx
我希望找到某种 indexOf() 方法,但我不知道包含的类叫什么。所以,这里有一个解决方法,因为我对 VB 不是很熟悉:
您可以使用GoToRecord
通过为第四个参数传入0 来转到第一条记录。然后,使用acNext
遍历所有记录,直到找到具有正确S_ID
值的条目。然后你可以停在那里,你的条目将是列表中的当前条目。
它远非完美或最佳,但如果没有其他选项,它会起作用
【讨论】:
以上是关于如何在 Access 中的特定记录处打开表单的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Access 中打开表单,自动选择组合框中的值并显示详细信息?
如何将 Microsoft Access 表单中的单个记录打印到报表中