VBA统计字符串出现的次数
程序员文章站
2022-04-30 20:42:00
...
手机边亲爱的大家好!
今天我要给大家分享一个示例:统计出某个字符串在某表某字段中出现的次数。
大家先来看一下结果效果图:
先来讲一下原理,其实就是循环数据库中的所有表,然后找模糊查找,找到了就记录表名、表中的字段、统计出现的次数。
知道了原理就可以开始做了,今天我们换个套路,不要再之前一步一步的方式来教大家了,只告诉关键的步骤。
01建表
其中,我们要建一张表,用于保存统计的数据,具体的查看截图。
02添加函数
这次代码只分享给大家一个关键的函数,然后大家自己去调用一下
查找函数
1Private Sub Snoop(SnoopFor As String)
2
3 On Error GoTo Snoop_Err
4
5 Dim DB As Database
6 Dim S As Recordset
7 Dim T As Recordset
8 Dim td As TableDef
9 Dim L As Integer
10 Dim F As Integer
11 Dim criteria As String
12 Dim occ As Long
13
14 Set DB = CurrentDb()
15 Set S = DB.OpenRecordset("tblSNOOP", DB_OPEN_DYNASET)
16
17
18 For L = 0 To DB.TableDefs.Count - 1
19
20 Set td = DB.TableDefs(L)
21
22
23 If Not td.Name Like "Msys*" Then
24 Set T = DB.OpenRecordset(td.Name, DB_OPEN_SNAPSHOT)
25
26 DoEvents
27
28 For F = 0 To td.Fields.Count - 1
29
30
31
32 criteria = "CStr('' & [" & td.Fields(F).Name & "]) Like '*" & SnoopFor & "*'"
33 T.FindFirst criteria
34
35 If Not (T.NoMatch) Then
36
37 occ = 0
38 Do While Not (T.NoMatch)
39 T.FindNext criteria
40 occ = occ + 1
41
42 Loop
43
44 S.AddNew
45 S!Occurence = occ
46 S!Table = td.Name
47 S!Field = td.Fields(F).Name
48 S.Update
49
50 End If
51
52 Next F
53
54 End If
55
56 Next L
57 Me.frmChild.Form.Requery
58 ' T.Close
59 S.Close
60 DB.Close
61
62Snoop_Exit:
63
64
65
66 Exit Sub
67
68Snoop_Err:
69 MsgBox Err.Description, vbCritical
70 Resume Snoop_Exit
71
72 Exit Sub
73
74End Sub
03测试
最后一步就是测试了,大家可以将按上面的步骤,在按钮控件的单击事件里来调用上面的函数。
上一篇: JAVA - \r与\n的区别
下一篇: Async await 异步编程说明