我在MS Access 2010中使用表单将数据输入表中。我已经设置了基本功能并添加了一些VB代码以根据需要对其进行格式化。我尝试做的其中一件事是在选中该复选框时更新复选框值的标签 - 使用下面的代码可以正常工作,但是当我点击“添加记录”时标签上的格式保留而不是像数据项一样清除 - 我无法解决如何修改它以使其工作,我相信我将不得不添加一个循环或修改添加记录按钮但我有不知道从哪里开始(有30多个标签和复选框,所以如果有一个快速的方法,而不必引用所有首选的标签)。我的第二个问题是因为我使用了'AfterUpdate',当我使用表单查看已添加的记录时,格式没有随着值的变化而变化,因为没有点击任何复选框。
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
任何帮助或方向都会受到赞赏。
答案 0 :(得分:0)
您必须在3个不同的场合进行TextBox1Name
的格式化。更新记录时(如您所知),更改表单上的记录(即OnCurrent
事件)或添加新记录(即新OnClick
事件时记录按钮。
我这样做的方法是创建一个私有子代码,代码与上面的代码非常相似,然后从所有3个事件中调用。唯一真正需要的改变是:
If Nz(TextBox1Name,0) = -1 Then
如果您的TextBox1Name
的默认值为Null而不是其他内容。
这当然适用于非连续形式。对于连续的形式,事情有点棘手。在这种情况下,最好的选择是条件格式。实际上,即使对于单个表单,您也可以使用条件格式,而不是使用VBA。