选择案例从未达到最终陈述

问题描述 投票:0回答:1

其他情况未到达。

Private Sub nM03KG_AfterUpdate()
    
    Select Case nVcap03
        Case Is < 80
            Me.nVcap03.BackColor = vbRed
            Me.nVcap03.ForeColor = vbWhite
        Case Is > 80 < 90
            Me.nVcap03.BackColor = RGB(255, 194, 14)
            Me.nVcap03.ForeColor = RGB(47, 54, 153)
        Case Else
            Me.nVcap03.BackColor = RGB(205, 220, 175)
            Me.nVcap03.ForeColor = RGB(47, 54, 153)
    End Select

End Sub

前 2 个案例选项没有问题,但是! “Case Else”永远不会达到。 如果我输入 11,000,这应该代表 > 90% 的容量,这是将字段颜色更改为绿色、前色为蓝色的触发点。

vba ms-access
1个回答
0
投票

这不是在 case 语句中表达范围的方式。

Case Is
接受一个表达式列表,如果有一个为真,则执行该情况下的语句。

这意味着

Case Is > 80 < 90
将成为所有高于 80 或低于 90 的数字的选定情况,因此实际上是所有数字。

要么依赖之前的表达式(已经过滤掉 80 以下的数字),要么在

To
 中使用 
Case

关键字

所以要么

Select Case nVcap03
    Case Is < 80
        Me.nVcap03.BackColor = vbRed
        Me.nVcap03.ForeColor = vbWhite
    Case Is < 90
        Me.nVcap03.BackColor = RGB(255, 194, 14)
        Me.nVcap03.ForeColor = RGB(47, 54, 153)
    Case Else
        Me.nVcap03.BackColor = RGB(205, 220, 175)
        Me.nVcap03.ForeColor = RGB(47, 54, 153)
End Select

或者

Select Case nVcap03
    Case Is < 80
        Me.nVcap03.BackColor = vbRed
        Me.nVcap03.ForeColor = vbWhite
    Case 80 To 90
        Me.nVcap03.BackColor = RGB(255, 194, 14)
        Me.nVcap03.ForeColor = RGB(47, 54, 153)
    Case Else
        Me.nVcap03.BackColor = RGB(205, 220, 175)
        Me.nVcap03.ForeColor = RGB(47, 54, 153)
End Select

请注意,在第二种情况下,第二个选项包括 90,而第一个选项则不包括。

© www.soinside.com 2019 - 2024. All rights reserved.