Ms access VBA更改矩形的背景色-访问

Ms access VBA更改矩形的背景色-访问,ms-access,vba,backcolor,Ms Access,Vba,Backcolor,所以我试图在Access中更改矩形的背景色。我知道您可以轻松地执行此操作Box1.BackColor=RGB(0,0,0),但是我希望在文本框中输入一个值,然后在更新文本框后立即显示该颜色值 我原以为下面的方法行得通,但行不通 Textbox1=0,0,0 Dim P1 as String P1 = "RGB(" + Textbox1.text + ")" Box1.Backcolor = P1 如何在运行中更改背景色?您可以拆分文本,通过int运行条目,并将其馈送到RGB: Dim A As

所以我试图在Access中更改矩形的背景色。我知道您可以轻松地执行此操作
Box1.BackColor=RGB(0,0,0)
,但是我希望在文本框中输入一个值,然后在更新文本框后立即显示该颜色值

我原以为下面的方法行得通,但行不通

Textbox1=0,0,0

Dim P1 as String
P1 = "RGB(" + Textbox1.text + ")"
Box1.Backcolor = P1

如何在运行中更改背景色?

您可以
拆分文本,通过
int
运行条目,并将其馈送到
RGB

Dim A As Variant
A = Split(Textbox1.text,",")
Box1.BackColor = RGB(Int(A(0)),Int(A(1)), Int(A(2)))

您可以
split
文本,通过
int
运行条目并将其馈送到
RGB

Dim A As Variant
A = Split(Textbox1.text,",")
Box1.BackColor = RGB(Int(A(0)),Int(A(1)), Int(A(2)))
根据您的代码,Eval()应该适合您。该函数计算字符串的值就像计算代码一样。背景色很长,顺便说一句,所以我相应地调整了你的代码

Dim P1 as Long
P1 = eval("RGB(" + Textbox1.text + ")")
Box1.Backcolor = P1
或者您可以抛弃P1并执行以下操作:

Box1.Backcolor = eval("RGB(" + Textbox1.text + ")")
根据您的操作,您可能只想使用内置的颜色对话框,而不是在文本框中输入文本

下面是API声明和可重用函数

Declare Sub wlib_AccColorDialog Lib "msaccess.exe" Alias "#53" (ByVal Hwnd As Long, lngRGB As Long)

Function ChooseColor(nDefColor As Variant) As Long
  Dim lngColor As Long
  wlib_AccColorDialog Screen.ActiveForm.Hwnd, nDefColor
  ChooseColor = nDefColor
End Function
这是对这些函数的框调用;它将传递对话框的默认颜色,以便在对话框打开时选择该颜色

Box1.BackColor = ChooseColor(Me.Box1.BackColor)
根据您的代码,Eval()应该适合您。该函数计算字符串的值就像计算代码一样。背景色很长,顺便说一句,所以我相应地调整了你的代码

Dim P1 as Long
P1 = eval("RGB(" + Textbox1.text + ")")
Box1.Backcolor = P1
或者您可以抛弃P1并执行以下操作:

Box1.Backcolor = eval("RGB(" + Textbox1.text + ")")
根据您的操作,您可能只想使用内置的颜色对话框,而不是在文本框中输入文本

下面是API声明和可重用函数

Declare Sub wlib_AccColorDialog Lib "msaccess.exe" Alias "#53" (ByVal Hwnd As Long, lngRGB As Long)

Function ChooseColor(nDefColor As Variant) As Long
  Dim lngColor As Long
  wlib_AccColorDialog Screen.ActiveForm.Hwnd, nDefColor
  ChooseColor = nDefColor
End Function
这是对这些函数的框调用;它将传递对话框的默认颜色,以便在对话框打开时选择该颜色

Box1.BackColor = ChooseColor(Me.Box1.BackColor)

可能使用val()而不是int来允许任何额外的空格,并在无效的values@AlexK. 这主意不错——虽然我很确定
Int
允许空格--
Int(“1”)
的计算结果为1。我喜欢这个建议,非常感谢。也许可以使用val()而不是Int来允许任何额外的空格,并在无效的情况下得到0values@AlexK. 这主意不错——虽然我很确定
Int
允许空格--
Int(“1”)
的计算结果为1。我喜欢这个建议,非常感谢。