我有一个表格,用户可以在其中选择数据库的颜色方案
ID | Colour | SelectedScheme
---|------------|--------------
1 | 136,207,39 | Yes
然后在我的表单上,我在当前事件选项卡上有以下内容
Dim RGBcolor As Long
RBGcolor = DLookup("Colour", "SelectedScheme")
Me.boxheader.BackColor = RGB(RGBcolor)
但是我得到的Argument不是可选错误。任何想法?
答案 0 :(得分:2)
RGB函数的参数是数字,而不是字符串,应该有3个:
RGB(136,207,39)
您正在尝试传递一个字符串参数。
您可以使用Split
函数从字符串中提取颜色值:
Me.boxheader.BackColor = RGB(Split(RGBcolor,",")(0),Split(RGBcolor,",")(1),Split(RGBcolor,",")(2))
答案 1 :(得分:1)
Dlookup函数接受以下参数:
RGB功能接受这三个:
我建议您在表格中使用三个不同的列作为组件颜色:
ID | ColourR | ColourG | ColourB | SelectedScheme
---|---------|---------|---------|---------------
1 | 136 |207 | 39 | Yes
您的活动可以写成:
Me.boxheader.BackColor = RGB(
DLookup("ColourR", "SchemaTableName", "SelectedScheme=TRUE"),
DLookup("ColourG", "SchemaTableName", "SelectedScheme=TRUE"),
DLookup("ColourB", "SchemaTableName", "SelectedScheme=TRUE")
)
这将从表SchemaTableName中选择字段SelectedScheme设置为true的颜色。
答案 2 :(得分:1)
RGB()
函数需要3个数字,但您的代码提供单个字符串值。这是“Argument not optional”编译错误的原因。
构造一个新字符串,其中包含RGB()
函数和您的数字字符串。将新字符串提交到Eval()
...
Me.boxheader.BackColor = Eval("RGB(" & RBGcolor & ")")