You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Access连续子窗体中点击图片按钮如何获取对应记录ID?

Access连续子窗体点击图片获取对应行ID的解决方法
  • 方法一:用控件Tag属性绑定ID
    在子窗体的Form_Current事件里,把当前记录的ID赋值给图片控件的Tag属性:

    Private Sub Form_Current()
        Me.编辑图片控件名.Tag = Me.ID 'ID替换为子窗体数据源的实际ID字段名
    End Sub
    

    接着在图片的OnClick事件中读取Tag值:

    Private Sub 编辑图片控件名_Click()
        Dim selectedID As Long
        selectedID = CLng(Me.编辑图片控件名.Tag)
        '打开未绑定编辑窗体并传递ID
        DoCmd.OpenForm "你的编辑窗体名称", OpenArgs:=selectedID
    End Sub
    
  • 方法二:通过Screen.ActiveControl定位记录
    在图片的OnClick事件中直接定位点击控件所在的记录:

    Private Sub 编辑图片控件名_Click()
        Dim selectedID As Long
        Me.Recordset.FindFirst "ID = " & Screen.ActiveControl.Parent.ID
        selectedID = Me.ID
        DoCmd.OpenForm "你的编辑窗体名称", OpenArgs:=selectedID
    End Sub
    
  • 方法三:利用记录集Bookmark定位
    点击图片时通过书签定位到对应记录,再读取ID:

    Private Sub 编辑图片控件名_Click()
        Dim rs As DAO.Recordset
        Set rs = Me.RecordsetClone
        rs.Bookmark = Me.Bookmark
        Dim selectedID As Long
        selectedID = rs!ID
        DoCmd.OpenForm "你的编辑窗体名称", OpenArgs:=selectedID
        rs.Close
        Set rs = Nothing
    End Sub
    

补充:编辑窗体接收ID填充数据

在未绑定编辑窗体的Form_Load事件中,读取OpenArgs并填充控件:

Private Sub Form_Load()
    If Not IsNull(Me.OpenArgs) Then
        Dim targetID As Long
        targetID = CLng(Me.OpenArgs)
        Dim rs As DAO.Recordset
        Set rs = CurrentDb.OpenRecordset("SELECT * FROM 数据源表名 WHERE ID = " & targetID)
        If Not rs.EOF Then
            Me.控件1 = rs!字段1
            Me.控件2 = rs!字段2
            '按需给其他控件赋值
        End If
        rs.Close
        Set rs = Nothing
    End If
End Sub

内容的提问来源于stack exchange,提问作者st_user_321122

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 19:43:11