【发布时间】:2017-03-03 23:32:59
【问题描述】:
我正在使用 MS Access 2010 中的表单将数据输入到表中。我已经设置了基本功能并添加了一些 VB 代码以根据需要对其进行格式化。我要做的一件事是在选择该复选框时更新该复选框值的标签 - 使用下面的代码它可以工作,但是当我单击“添加记录”时,标签上的格式仍然存在,而不是像数据一样清除项目 - 我不知道如何修改它以使其工作,我确信我将不得不添加一个循环或修改添加记录按钮,但我不知道从哪里开始(有 30 多个标签和复选框所以如果有一种无需参考所有首选标签的快速方法)。我的第二个问题是因为我使用了“更新后”,当我使用表单查看已添加的记录时,格式不会随着值的变化而改变,因为没有单击复选框。
Private Sub TextBox1Name_AfterUpdate()
Const LightYellow = 10092543
If TextBox1Name = -1 Then
Me.Label1Name.BackStyle = 1
Me.Label1Name.BackColor = LightYellow
Else
Me.Label1Name.BackStyle = 0
End If
End Sub
任何帮助或指导将不胜感激。
【问题讨论】:
-
您使用的是连续表格吗?检查控件类型可以做很多事情。考虑一下,你已经有了真假,所以你可能不需要 if 和 else。
-
您的第二个问题很简单 - 只需添加一个“Form_Current”事件即可根据需要设置/重置标签。至于单击“添加”按钮后的“重置 30 多个标签...”,您可以循环遍历所有 Me.Controls 以查找复选框类型并重置,或者手动重置 20 多行代码(嘘!)这是一个识别有意义的控件名称(即 chkLarge、chkSmall 等)的价值的好地方,因为您可以使用代码来查找名称和控件类型。
标签: vb.net ms-access formatting vba