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測試

最後一步就是測試了,大家可以將按上面的步驟,在按鈕控件的單擊事件裏來調用上面的函數。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章