VBA统计字符串出现的次数

手机边亲爱的大家好!

今天我要给大家分享一个示例:统计出某个字符串在某表某字段中出现的次数。

 

大家先来看一下结果效果图:

 

 

先来讲一下原理,其实就是循环数据库中的所有表,然后找模糊查找,找到了就记录表名、表中的字段、统计出现的次数。

 

知道了原理就可以开始做了,今天我们换个套路,不要再之前一步一步的方式来教大家了,只告诉关键的步骤。

 

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测试

最后一步就是测试了,大家可以将按上面的步骤,在按钮控件的单击事件里来调用上面的函数。

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易登软件Access开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值