本帖最后由 tanhong 于 2010-11-3 21:21 编辑
步骤四:在代码窗口输入如下代码。将ACCESS中的单击事件代码,略做修改成为一个公用函数,然后复制到VB代码编辑窗口 ?代码如下
- '将这前的ACCESS代码改成一个公用函数
- '输入:strPutString 字符串变量,需分离数字的字符串
- '输出: fFindNumber字符串变量,得到的数字字符
- Public Function fFindNumber(strPutString As String) As String
- Dim strOut As String '输出字符串变量
- Dim I
-
- '从第一个字符向最后一个字符循环,以提取每个字符
- 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
- '数字输出
- fFindNumber = strOut
- End Function
复制代码
步骤五:编译DLL,点菜单【文件】-【生成我的动态库.dll】,VBA代码封装DLL就完成了。
三、在mdb中调用自定义DLL动态链接库 (一)新建数据库及窗体 新建【快速提取数字(DLL)实例.mdb】数据库,新建一个窗体【frmMain】,在窗体添文本框【text0】,按钮【CmdFindNum】,Caption属性:“提取数字”(见下图) (二)引用【我的动态库.dll】库 按【Alt+F11】打开VBE窗口,点菜单【工具】-【引用】,打开引用对话框,完成对我们自己编译的DLL的引用。 (三)在【CmdFindNum】按钮单击事件中加入如下代码。
- Private Sub CmdFindNum_Click()
- '申明自定义类
- Dim MyFindNum As 提取数字
- Dim strOut As String
-
- '实例化"提取数字类"对象
- Set MyFindNum = New 提取数字
- '将函数输出结果赋值给自定义字符串变量
- strOut = MyFindNum.fFindNumber(Text0)
-
- '在消息框中显示
- MsgBox "你提取的数字为:" & strOut, vbInformation, "江羽提示:"
- End Sub
复制代码
点击保存后,你就可以运行一下窗体测试你的成果了 M 本文实例见实例包,下载测试如果提示错误,请重新对自定义类库进行引用。 本文只是通过一个简单的实例演示了,如何通过VB封装一般的VBA中代码,因为该代码中并未涉及到ACCESS应用程序对象,所以在VB中没有对ACCESS对象类库进行引用,另外实例中只是简单演示了,如何手动实现对DLL的注册引用,在后续文章中我将就如何实现DLL与ACCESS应用程序对接及DLL的自动注册及引用结合实例进行讲解。 江羽 2010-05-16 晚
|