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

如何根据第一个组合框选择加载第二个级联组合框?代码无报错但未加载

问题:根据第一个组合框选择填充第二个组合框,但无内容加载(无报错)

原代码:

Private Sub cboSAP_AfterUpdate()

    Me.cboProcess.RowSource = "SELECT ProcessStep FROM" & _
                              " tblProcess WHERE SAPPN = " & Me.cboSAP & _
                              " ORDER BY ProcessStep"
    Me.cboProcess = Me.cboProcess.ItemData(0)

End Sub

排查和解决方法:

  • 检查SAPPN字段类型,补充SQL单引号
    如果SAPPN是文本类型,直接拼接Me.cboSAP会让SQL把值当作数字解析,导致匹配不到数据。修改SQL语句为:

    Me.cboProcess.RowSource = "SELECT ProcessStep FROM tblProcess WHERE SAPPN = '" & Me.cboSAP & "' ORDER BY ProcessStep"
    

    若Me.cboSAP的值可能包含单引号,需替换为两个单引号避免语法错误:Replace(Me.cboSAP, "'", "''")。

  • 手动触发组合框刷新
    部分场景下设置RowSource后不会自动加载数据,需添加Requery方法,同时加判断避免空结果报错:

    Me.cboProcess.RowSource = "SELECT ProcessStep FROM tblProcess WHERE SAPPN = '" & Me.cboSAP & "' ORDER BY ProcessStep"
    Me.cboProcess.Requery
    If Me.cboProcess.ListCount > 0 Then
        Me.cboProcess = Me.cboProcess.ItemData(0)
    End If
    
  • 验证SQL语句有效性
    把拼接后的SQL输出到立即窗口,复制到Access查询中执行,确认是否返回数据:

    Dim strSQL As String
    strSQL = "SELECT ProcessStep FROM tblProcess WHERE SAPPN = '" & Me.cboSAP & "' ORDER BY ProcessStep"
    Debug.Print strSQL ' 打开立即窗口查看语句
    Me.cboProcess.RowSource = strSQL
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:35:18