Vba 使用可变颜色名称设置访问背景色
我正在从数据库字段中提取颜色,希望该列确定窗体上控件的颜色。所以我知道我可以这样做来静态设置颜色:Vba 使用可变颜色名称设置访问背景色,vba,ms-access,Vba,Ms Access,我正在从数据库字段中提取颜色,希望该列确定窗体上控件的颜色。所以我知道我可以这样做来静态设置颜色: Me.txtPartNum.BackColor = vbRed 现在,我的数据库中有一个红色,所以我尝试: Me.txtPartNum.BackColor = "vb" + varMyColor 但是,这会导致运行时错误“13”类型不匹配 如何使用可变颜色设置窗体或窗体中控件的背景色。我使用此函数结束了我们的工作,该函数从十六进制值中给出vbcolor值: Function
Me.txtPartNum.BackColor = vbRed
现在,我的数据库中有一个红色,所以我尝试:
Me.txtPartNum.BackColor = "vb" + varMyColor
但是,这会导致运行时错误“13”类型不匹配
如何使用可变颜色设置窗体或窗体中控件的背景色。我使用此函数结束了我们的工作,该函数从十六进制值中给出vbcolor值:
Function HexToLongRGB(sHexVal As String) As Long
Dim lRed As Long
Dim lGreen As Long
Dim lBlue As Long
lRed = CLng("&H" & Left$(sHexVal, 2))
lGreen = CLng("&H" & Mid$(sHexVal, 3, 2))
lBlue = CLng("&H" & Right$(sHexVal, 2))
HexToLongRGB = RGB(lRed, lGreen, lBlue)
End Function
vbRed
相当于255
,即vbRed
与“vbRed”
不同。我会在这里创建一个helper函数来解析存储为文本的颜色,即“red”,并返回等效的颜色常量。但是颜色是由用户输入的。有没有一个地方可以让我得到一个相当于这些常量的颜色代码列表。这些常数是十六进制。我可以设置我的数据库列来存储十六进制数字。我最终使用了我发布的解决方案