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
相关产品推荐
相关产品推荐

