如何根据第一个组合框选择加载第二个级联组合框?代码无报错但未加载
问题:根据第一个组合框选择填充第二个组合框,但无内容加载(无报错)
原代码:
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
相关产品推荐
相关产品推荐

