我无法在Access数据库中设置文本框的背景颜色。我想在满足某些条件时将颜色更改为红色。
在设计视图中,我将文本框的背面颜色属性设置为红色,并显示为'#ED1C24'。当我在窗体视图中查看窗体时,控件正确地以我选择的红色显示。
但是当我把这个值放到我的VBA代码中时(Text1.Backcolor ="#ED1C24")我得到了一个类型不匹配错误。
我尝试将其更改为十六进制数字(Text1.Backcolor =& HED1C24),但随后控件变为蓝色。
任何帮助将不胜感激。感谢。
答案 0 :(得分:2)
我刚刚写了一篇关于这个问题的博客,应该回答你的问题。
http://www.jht.co.uk/access-colour-color-codes/
这是代码;
Public Function HTMLColour(HTMLCode As String, Optional Red As Variant, _
Optional Green As Variant, Optional Blue As Variant) As Long
On Error GoTo HTMLColour_Error
‘Converts an HTML colour code number to a long interger
‘Also returns the constituent R,G & B components through supplied parameters
Dim intR As Integer, intG As Integer, intB As Integer
Dim strHTML As String
‘Strip # prefix if supplied
If Len(HTMLCode) < 6 Then Exit Function
strHTML = Right(HTMLCode, 6)
‘Extract R, G, B values
intR = CInt(“&H” & Mid(strHTML, 1, 2))
intG = CInt(“&H” & Mid(strHTML, 3, 2))
intB = CInt(“&H” & Mid(strHTML, 5, 2))
‘Return optional parameters
If Not IsMissing(Red) Then Red = intR
If Not IsMissing(Green) Then Green = intG
If Not IsMissing(Blue) Then Blue = intB
‘Convert RGB to Long integer
HTMLColour = RGB(intR, intG, intB)
HTMLColour_Exit:
Exit Function
HTMLColour_Error:
MsgBox Err.Description, vbExclamation, “Function HTMLColour”
Resume HTMLColour_Exit
结束功能
希望这有帮助。
答案 1 :(得分:1)
VBA中的颜色代码格式为RGB或Long,而不是HEX
在您的情况下,最简单的方法是调用一个将从HEX转换为Long的函数:
Public Function Color_Hex_To_Long(strColor As String) As Long
Dim iRed As Integer
Dim iGreen As Integer
Dim iBlue As Integer
strColor = Replace(strColor, "#", "")
strColor = Right("000000" & strColor, 6)
iBlue = Val("&H" & Mid(strColor, 1, 2))
iGreen = Val("&H" & Mid(strColor, 3, 2))
iRed = Val("&H" & Mid(strColor, 5, 2))
Color_Hex_To_Long = RGB(iRed, iGreen, iBlue)
End Function
像这样使用:
Text1.BackColor = Color_Hex_To_Long("#ED1C24")
答案 2 :(得分:1)
只需使用OnCurrent属性来设置字体属性或其他属性。 不用输入十六进制颜色代码,而是更容易使用完全由数字组成的MS Access专有代码。做简单的方法。干杯!米奇
答案 3 :(得分:0)
对于MS_ACCESS 2016,long值似乎只是.backcolor值,使用上面的函数转换HEX工作。
我只是创建一个文本框和一个标签,在设计视图中为标签着色,并在VBA中将文本框值设置为txtBlue = lblBlue.backcolour。
我不确定在其他版本的Excel中是否会出现这种情况,但在Office 2016中似乎就是这种情况。