如何在MS-Access VBA中将表单背景设置为十六进制颜色

时间:2018-07-11 18:33:59

标签: vba ms-access

我希望在给定条件的情况下将表单的背景设置为十六进制值。

Private Sub Form_Load()
    If Not IsNull(Me.SeparationDate) Then Me.Detail.BackColor = Val("&H" & "ff1111")
End Sub

问题是在这种情况下,我的背景变成了深蓝色,而不是红色。

1 个答案:

答案 0 :(得分:2)

该值必须为GBR

&H1111ff

还有一个RGB()函数

RGB(255,17,17) 'Same as &H1111ff

说你有

s = "ff1111"

那你就可以做

Me.Detail.BackColor = RGB("&H" & Left$(s, 2), _
                          "&H" & Mid$(s, 3, 2), _
                          "&H" & Right$(s, 2))

或者简单地

Me.Detail.BackColor = "&H" & Right$(s, 2) & Mid$(s, 3, 2) & Left$(s, 2)

根据@MathieuGuindon的说法,Val功能不是必需的,因为VBA可以理解十六进制字符串并将其自动转换为Long