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

运行时错误'380'咨询:无法设置cboLayout的Value属性问题排查

运行时错误'380':无法设置Value属性的排查与解决

错误原因

执行cboLayout = 14400触发错误的核心原因是14400这个布局ID不在当前cboLayout下拉列表的选项中,具体场景分为两种:

  • 存储过程PS_Layout_list传入entity_id=4505且@deal_only=1时,返回结果集里没有layout_id=14400的记录,导致该值未被添加到下拉列表。
  • 代码添加列表项时,layout_id的类型不匹配(比如数据库中是字符串类型,代码按数值存储,直接赋值数值14400会和列表中的字符串"14400"不匹配)。

解决步骤

1. 验证存储过程返回的数据

直接在数据库中执行以下语句,确认结果集是否包含layout_id=14400:

EXEC PS_Layout_list @deal_only=1, @entity_id=4505
  • 如果结果中没有14400:检查存储过程的@deal_only=1过滤条件是否排除了该布局,或者确认14400是否属于实体4505的有效布局ID,调整存储过程逻辑或业务数据。
  • 如果结果中有14400,进入下一步排查。

2. 修正控件赋值逻辑

避免直接给cboLayout赋值,改用遍历列表并设置ListIndex的方式,既解决类型匹配问题,又能容错:

If cboEntity = 4505 Then
    Dim i As Integer
    Dim foundMatch As Boolean
    foundMatch = False
    
    For i = 0 To cboLayout.ListCount - 1
        ' 注意:如果数据库中layout_id是字符串类型,这里要改为"14400"
        If cboLayout.Column(0, i) = 14400 Then
            cboLayout.ListIndex = i
            foundMatch = True
            Exit For
        End If
    Next i
    
    ' 可选:未找到匹配项时的处理
    If Not foundMatch Then
        MsgBox "布局ID 14400 不在当前实体的可选列表中"
        cboLayout.ListIndex = -1 ' 清空选中状态
    End If
End If

3. 检查类型匹配问题

确认数据库中layout_id的数据类型:

  • 如果是字符串类型,代码中添加列表项时,cboLayout.Column(0, ...)存储的是字符串值,此时判断条件要改为cboLayout.Column(0, i) = "14400"。
  • 如果是数值类型,确保代码中赋值和判断时都用数值类型,避免隐式类型转换导致的不匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 06:53:16