【问题标题】:Access: Open existing record in a custom form for editing访问:以自定义表单打开现有记录进行编辑
【发布时间】:2020-07-13 23:06:12
【问题描述】:

这是宏伟的愿景。

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

当一个部件最初从 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 步回顾:

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

【问题讨论】:

    标签: forms ms-access vba recordset


    【解决方案1】:

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

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

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

    【讨论】:

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