我正在为水产养殖部门创建一个数据库。在一个表单中,我为每个存在的“池”放置了按钮:

这样你就有了一个想法,按钮有以下代码,它们转发到另一个表单,其中包含关于给定池的特定信息:
Private Sub cmd2_Click()
On Error GoTo cmd2_Click_Err
codBaseNum = "AT 1/2"
DoCmd.OpenForm "InfoBotonTanque", acNormal, "", "[Base-Número]=""AT 1/2""", , acLast
cmd2_Click_Exit:
Exit Sub
cmd2_Click_Err:
MsgBox Error$
Resume cmd2_Click_Exit
End Sub基于Table上的两个不同的复选框,其中包含有关各个池的信息,我希望这两个按钮更改颜色。下面是表中的数据:

复选框名称:保留和条件?。基地-努梅罗是池ID。所有三个值都在表单的RecordSource中:

编辑:成功地完成了我想要的:按钮根据CheckBox值改变颜色!下面的代码不是很好用,因为我必须为每个按钮输入相同的内容,并做一些小改动,大约有150个按钮,但它可以工作。使用的代码是:
Private Sub Form_Load()
If DLookup("[Reserva]", "Tanques", "[Base-Número] = 'AT 1/2'") = True And DLookup("[Condicion?]", "Tanques", "[Base-Número] = 'AT 1/2'") = False Then
Me.cmd2.BackColor = RGB(255, 215, 0)
ElseIf DLookup("[Reserva]", "Tanques", "[Base-Número] = 'AT 1/2'") = False And DLookup("[Condicion?]", "Tanques", "[Base-Número] = 'AT 1/2'") = True Then
Me.cmd2.BackColor = RGB(255, 0, 0)
ElseIf DLookup("[Reserva]", "Tanques", "[Base-Número] = 'AT 1/2'") = False And DLookup("[Condicion?]", "Tanques", "[Base-Número] = 'AT 1/2'") = False Then
Me.cmd2.BackColor = RGB(51, 171, 249)
Else
Me.cmd2.BackColor = RGB(120, 120, 120)
End If
End Sub发布于 2021-02-18 04:58:29
为了不重复150次代码,使用一个循环来构造命令按钮名称以及基地-努梅罗参数和变量。考虑一下:
Private Sub Form_Load()
Dim x As Integer
For x = 1 to 150
If DLookup("[Reserva]", "Tanques", "[Base-Número] = 'AT 1/" & x & "'") = True _
And DLookup("[Condicion?]", "Tanques", "[Base-Número] = 'AT 1/" & x & "'") = False Then
Me("cmd" & x ).BackColor = RGB(255, 215, 0)
ElseIf DLookup("[Reserva]", "Tanques", "[Base-Número] = 'AT 1/" & x & "'") = False _
And DLookup("[Condicion?]", "Tanques", "[Base-Número] = 'AT 1/" & x & "'") = True Then
Me("cmd" & x).BackColor = RGB(255, 0, 0)
ElseIf DLookup("[Reserva]", "Tanques", "[Base-Número] = 'AT 1/" & x & "'") = False _
And DLookup("[Condicion?]", "Tanques", "[Base-Número] = 'AT 1/" & x & "'") = False Then
Me("cmd" & x).BackColor = RGB(51, 171, 249)
Else
Me("cmd" & x).BackColor = RGB(120, 120, 120)
End If
Next
End Subhttps://stackoverflow.com/questions/66138295
复制相似问题