如何从数据表子窗体打开指定记录的所有者窗体
解决Access子窗体点击字段打开对应记录的问题
首先,你获取OwnerID的方式有误,子窗体数据表视图里,当前点击行的字段值直接用Me!OwnerID就能拿到,不用加查询名[EventsAll]。修改后的代码如下:
Private Sub OwnerName_Click() Dim recID As Variant ' 用Variant避免空值报错 ' 直接获取当前行的OwnerID recID = Me!OwnerID ' 先判断ID是否有效,避免空值打开空白窗体 If IsNull(recID) Then MsgBox "未找到对应所有者ID", vbExclamation Exit Sub End If Debug.Print "recID = " & recID ' 关闭父窗体(如果确实需要的话,可根据实际情况保留) If Forms("EventsParent").IsLoaded Then DoCmd.Close acForm, "EventsParent" End If ' 打开Owner窗体并定位到指定记录 DoCmd.OpenForm "Owner", , , "ID = " & recID End Sub
额外注意事项:
- 确保你的子窗体数据源(查询/表)里确实包含
OwnerID字段,并且该字段和Owner窗体的ID字段类型一致(比如都是数字型)。 - 如果OwnerID是文本类型,过滤条件要加单引号:
"ID = '" & recID & "'" - 不需要额外引用父窗体再关闭,直接判断窗体是否加载后关闭更稳妥。
内容的提问来源于stack exchange,提问作者Hawsidog
相关产品推荐
相关产品推荐

