【问题标题】:How to open a form at a specific record in Access如何在 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

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


【解决方案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 值的条目。然后你可以停在那里,你的条目将是列表中的当前条目。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多