如果语句以文本框颜色作为条件

时间:2014-06-02 20:02:48

标签: vba ms-access-2007

这适用于在表单上使用VB的Access 2007。当所有3个文本框都是绿色时,我正在尝试运行一些代码,如果它们不是绿色,则会出现一个消息框,要求在导出之前更正错误。有没有更好的方法来评估3个条件?要读取颜色值我应该使用Me.Text1.Value = vbgreen吗?

感谢您的帮助

 If Me.Text1 = "vbgreen" And Me.Text3 = "vbgreen" and Me.Text5 = "vbgreen" Then
    Call RunExpZip
    Else
    msg = MsgBox("Please correct errors before exporting", vbCritical)
    End If

1 个答案:

答案 0 :(得分:2)

除非文本框中的文本实际上是单词“vbgreen”,否则您需要检查文本框的BackColor属性。 (或ForeColor如果是文本颜色,而不是背景。)

此值不会评估为vbGreen(65280);标准绿色的值为5026082:

If Me.Text1.BackColor = 5026082 Then
    'etc.

但是,据推测,颜色是使用条件格式设置的。在这种情况下,(在我看来)检查条件(会使它们变为绿色)而不是检查颜色本身会更好。 (颜色的微小变化意味着不能满足if条件。)