VBA 更改矩形的背景色 - Access

VBA To Change BackColor Of Rectangle - Access

所以我想在 Access 中更改矩形的背景色。我知道您可以轻松做到这一点 Box1.BackColor = RGB(0, 0, 0),但是我想在文本框中输入一个值,然后在您更新文本框后立即显示该颜色值。

我认为下面的方法会起作用,但它不起作用。

文本框 1 = 0, 0, 0

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

如何即时更改背景颜色?

您可以 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)