本帖最后由 tanhong 于 2010-11-3 21:21 編輯
步驟四:在代碼窗口輸入如下代碼。將ACCESS中的單擊事件代碼,略做修改成為一個(gè)公用函數(shù),然后復(fù)制到VB代碼編輯窗口 ?代碼如下
- '將這前的ACCESS代碼改成一個(gè)公用函數(shù)
- '輸入:strPutString 字符串變量,需分離數(shù)字的字符串
- '輸出: fFindNumber字符串變量,得到的數(shù)字字符
- Public Function fFindNumber(strPutString As String) As String
- Dim strOut As String '輸出字符串變量
- Dim I
-
- '從第一個(gè)字符向最后一個(gè)字符循環(huán),以提取每個(gè)字符
- For I = 1 To Len(strPutString)
- '判斷是否為0到9字符,是則賦值輸出
- If Mid(strPutString, I, 1) Like "[0-9]" Then
- strOut = strOut & Mid(strPutString, I, 1)
- End If
- Next I
- '數(shù)字輸出
- fFindNumber = strOut
- End Function
復(fù)制代碼
步驟五:編譯DLL,點(diǎn)菜單【文件】-【生成我的動(dòng)態(tài)庫.dll】,VBA代碼封裝DLL就完成了。
三、在mdb中調(diào)用自定義DLL動(dòng)態(tài)鏈接庫 (一)新建數(shù)據(jù)庫及窗體 新建【快速提取數(shù)字(DLL)實(shí)例.mdb】數(shù)據(jù)庫,新建一個(gè)窗體【frmMain】,在窗體添文本框【text0】,按鈕【CmdFindNum】,Caption屬性:“提取數(shù)字”(見下圖) (二)引用【我的動(dòng)態(tài)庫.dll】庫 按【Alt+F11】打開VBE窗口,點(diǎn)菜單【工具】-【引用】,打開引用對話框,完成對我們自己編譯的DLL的引用。 (三)在【CmdFindNum】按鈕單擊事件中加入如下代碼。
- Private Sub CmdFindNum_Click()
- '申明自定義類
- Dim MyFindNum As 提取數(shù)字
- Dim strOut As String
-
- '實(shí)例化"提取數(shù)字類"對象
- Set MyFindNum = New 提取數(shù)字
- '將函數(shù)輸出結(jié)果賦值給自定義字符串變量
- strOut = MyFindNum.fFindNumber(Text0)
-
- '在消息框中顯示
- MsgBox "你提取的數(shù)字為:" & strOut, vbInformation, "江羽提示:"
- End Sub
復(fù)制代碼
點(diǎn)擊保存后,你就可以運(yùn)行一下窗體測試你的成果了 M 本文實(shí)例見實(shí)例包,下載測試如果提示錯(cuò)誤,請重新對自定義類庫進(jìn)行引用。 本文只是通過一個(gè)簡單的實(shí)例演示了,如何通過VB封裝一般的VBA中代碼,因?yàn)樵摯a中并未涉及到ACCESS應(yīng)用程序?qū)ο螅栽?/font>VB中沒有對ACCESS對象類庫進(jìn)行引用,另外實(shí)例中只是簡單演示了,如何手動(dòng)實(shí)現(xiàn)對DLL的注冊引用,在后續(xù)文章中我將就如何實(shí)現(xiàn)DLL與ACCESS應(yīng)用程序?qū)蛹?/font>DLL的自動(dòng)注冊及引用結(jié)合實(shí)例進(jìn)行講解。 江羽 2010-05-16 晚
|