手機邊親愛的大家好!
今天我要給大家分享一個示例:統計出某個字符串在某表某字段中出現的次數。
大家先來看一下結果效果圖:
先來講一下原理,其實就是循環數據庫中的所有表,然後找模糊查找,找到了就記錄表名、表中的字段、統計出現的次數。
知道了原理就可以開始做了,今天我們換個套路,不要再之前一步一步的方式來教大家了,只告訴關鍵的步驟。
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測試
最後一步就是測試了,大家可以將按上面的步驟,在按鈕控件的單擊事件裏來調用上面的函數。