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

Access Tracker表单:父实体筛选后子实体下拉框仅显首个值求助

问题排查与解决方案

核心问题:事件绑定逻辑错误

你的代码写在了Subs2_AfterUpdate事件中,但需求是选择父实体后更新子实体下拉框,代码应该绑定到Parententity2_AfterUpdate事件——否则父实体切换时不会触发子实体列表的更新,你看到的单个值只是表单当前记录的默认值,而非筛选后的完整子实体列表。

修正后的代码

Private Sub Parententity2_AfterUpdate()
    Dim strFilter As String
    Dim strSubsSQL As String
    
    ' 处理父实体为空的情况
    If IsNull(Me.Parententity2.Value) Then
        Me.Subs2.RowSource = ""
        Me.RecordSource = "SELECT * FROM [Data]"
        Exit Sub
    End If
    
    ' 处理单引号避免SQL语法错误
    strFilter = Replace(Me.Parententity2.Value, "'", "''")
    
    ' 更新表单记录源
    Me.RecordSource = "SELECT * FROM [Data] WHERE [parent entity] = '" & strFilter & "'"
    
    ' 构造子实体查询语句,确保获取所有对应子实体
    strSubsSQL = "SELECT DISTINCT [subs] FROM [Data] WHERE [parent entity] = '" & strFilter & "' ORDER BY [subs]"
    
    ' 设置并刷新子实体下拉框
    Me.Subs2.RowSource = strSubsSQL
    Me.Subs2.Requery
End Sub

额外属性检查

确保Subs2组合框的以下属性设置正确:

  • Row Source Type:必须设为「表/查询」
  • Column Count:设为1(仅查询subs一列)
  • Column Widths:设置合适宽度(如2cm),确保内容完整显示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:42:54