访问:打开自定义表单中的现有记录以进行编辑

时间:2014-02-26 23:39:32

标签: forms access-vba recordset

这是宏伟的愿景。

我正在构建一个用于电子拆卸的零件数据库。

当一个部件最初从PCB上移除时,它的参考指示符和测量值将被记录(每个部件类型都有一个自定义的输入形式,例如电阻器,电容器,IC等)。稍后,我们将返回每个部分并添加更多细节。

此时我可以从组合框中选择现有部件,使用FindFirst函数在主表中找到它的记录,提取相应的部件类型信息,并打开相应的数据输入表单。

我无法弄清楚的是如何在新打开的表单中显示该记录。由于我正在打开一个新表单

,典型的Me.Bookmark = rs.Bookmark策略不起作用
Private Sub cmdEditPart_Click()
Dim rs As Recordset
Dim qdf As QueryDef
Dim prm As Parameter
Dim partType As String
Set qdf = CurrentDb.QueryDefs("Parts_SingleBoard")
qdf.Parameters(0) = Forms![Start Page (Boards)]![ComboPartNumber]

'Lookup record
    If Not IsNull(Me.cmbRefDes) Then
        'Save before move.
        If Me.Dirty Then
            Me.Dirty = False
        End If
        'Search in the clone set.
        Set rs = qdf.OpenRecordset.Clone
        rs.FindFirst "[Reference Designator] = '" & Me.cmbRefDes & "'"
        If rs.NoMatch Then
            MsgBox "Part not found"
        Else
            'Display the found record in the appropriate form.
            partType = rs.Fields("Part Type")
            DoCmd.OpenForm (partType)
            'Some sort of bookmark wizardy ****THIS IS WHAT I NEED HELP WITH *****
        End If
        Set rs = Nothing
    End If
End Sub

4步回顾:

查看现有零件清单 - >选择部分 - >动态打开正确的数据输入表单 - >使用我要编辑的记录填充表单

1 个答案:

答案 0 :(得分:0)

使用DoCmd.OpenForm方法中内置的过滤器机制,如下所示:

DoCmd.OpenForm (partType), , , "[Reference Designator] = '" & Me.cmbRefDes & "'"

我不确定我的过滤器语句之前是否有足够的逗号。你可能需要四个逗号。