使用 vba 在 Access 2010 中使用不同表单的 ID 打开表单

Posted

技术标签:

【中文标题】使用 vba 在 Access 2010 中使用不同表单的 ID 打开表单【英文标题】:Open a form using ID from a different form in Access 2010 using vba 【发布时间】:2013-06-11 14:18:45 【问题描述】:

我正在尝试从另一个表单的按钮打开一个表单。带有按钮contracts_all 表单的表单有一个字段ID,我想打开包含该ID 信息的表单。第二种形式,合同,具有附加信息,并具有允许编辑该特定合同的按钮。我设法得到了一些东西,但它给了我一个“运行时错误 2489。表单合同未打开” 代码如下。提前致谢。

Private Sub Command74_Click()
    ID = [Forms]!Contracts_all![ID]
    DoCmd.GoToRecord acDataForm, "Contracts", ID
End Sub

【问题讨论】:

【参考方案1】:
Dim Rs As Recordset
Dim Test As Integer
Dim varBookmark As Variant

DoCmd.OpenForm "Contracts"


Set Rs = Forms!Contracts.RecordsetClone

    Rs.FindFirst ("[ID] = '" & Me![ID] & "'")

varBookmark = Rs.Bookmark
Forms!Contracts.Form.Bookmark = varBookmark

If Rs.NoMatch Then
  MsgBox "That does not exist in this database."
Else
End If

【讨论】:

我试过这段代码..但它给了我“找不到方法或数据集”..我在这里错过了一些非常简单的东西吗?【参考方案2】:

我有答案..谢谢大家的帮助..我最终做的是从 Contracts_all 表格中获取 ID,每次我重新打开合同表格时。这是我的代码

Private Sub next_Click()
    On Error GoTo Err_next_Click
    DoCmd.SelectObject acForm, "contracts_all"
    DoCmd.GoToControl "ID"

    DoCmd.GoToRecord , , acNext
    DoCmd.OpenForm "Contracts", , , "ID = " & Forms!contracts_all![ID]

Exit_next_Click:
    Exit Sub

 Err_next_Click:
    MsgBox Err.Description
    Resume Exit_next_Click

 End Sub

【讨论】:

以上是关于使用 vba 在 Access 2010 中使用不同表单的 ID 打开表单的主要内容,如果未能解决你的问题,请参考以下文章

Access 2010中使用VBA创建动态表

在 ms access 2010 中将嵌入式宏转换为 vba 后,代码不再起作用

使用 VBA 在 Access 2010 中的表单上显示记录集

从 Access 2010 VBA 打开 Excel 2010 文件

使用 vba 在 Access 2010 中使用不同表单的 ID 打开表单

如何在 MS Access 2010 中使用 VBA 选择多值组合框的值?