hi,今天给大家分享一个示例。
大家在遇到重复的数据时,大家会以什么样的方式去展示重复呢?就像excel的条件判断中有一个重复值功能的判断,如果有重复的数据,则背景会以不同的颜色显示,如下图演示。
重复的数据会以这样的方式显示
看到这样的情况,我们就会考虑,如果放到access中,该如何操作呢?
那我们今天就来讲一下这个功能。
0 1添加窗体首先,我们先添加一下如下图一样的窗体,窗体为数据表窗体。
0 2添加代码接下去我们在窗体的加载事件中添加一下代码。
加载事件
Private Sub Form_Load()
Dim ctl As Control
Dim rst As DAO.Recordset
Dim str As String
Set rst = Me.Form.RecordsetClone
If rst.RecordCount > 0 Then rst.MoveFirst
Do Until rst.EOF
If DCount("*", "tblCustomer", "Customer='" & rst!Customer & "'") > 1 Then
str = str & "Customer='" & rst!Customer & "' or "
End If
rst.MoveNext
Loop
If Len(str) > 0 Then
str = Left(str, Len(str) - 4)
End If
For Each ctl In Me.Form
If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Then
ctl.FormatConditions.Add acExpression, acEqual, 1
ctl.FormatConditions(0).Modify acExpression, , str
ctl.FormatConditions(0).BackColor = vbRed
End If
Next
End Sub
原理比较简单,就是利用条件格式来操作,给每个控件添加条件格式来进行判断,如果数据重复则背景就以红色显示。
0 3运行测试最后就是运行测试一下,如下图,就是我们想要的结果。
好了,大家去试一下吧。