VB封装DLL实例讲解

上传人:小** 文档编号:158186776 上传时间:2022-10-03 格式:DOC 页数:7 大小:534.50KB
返回 下载 相关 举报
VB封装DLL实例讲解_第1页
第1页 / 共7页
VB封装DLL实例讲解_第2页
第2页 / 共7页
VB封装DLL实例讲解_第3页
第3页 / 共7页
点击查看更多>>
资源描述
VB封装DLL实例讲解(二)上文中我们已经就DLL的基本概念,以及如何将VBA代码封装为DLL,如何引用该生成的DLL动态链接库,进行了初步的讲解,我想大家对于VB封装DLL应该有了一个初步的了解。下面主要就DLL如何实现对ACCESS对象进行封装方法进行探讨。一、如何在VB中实现对ACCESS对象编程(一)在VB中引用ACCESS对象类库我们要通过编译来实现对ACCESS对象的封装,首先必须在VB中引用ACCESS对象类库,这样我们就可以在VB中,实现对ACCESS应用程序中的对象进行编程。打开VB编辑窗口,点菜单【工程】【引用】,打开【引用对话框】,点选“MicrosoftAccess11.0ObjectLibrary”完成对当前版本ACCESS应用程序对象的引用。实例演示版本为ACCESS20031钩选ACCESS对象库对象库的引用很关键,否则我们无法实现对对库文件所在路径*2点击确定对象的编程(二)了解ACCESS对象模型在VB中要对ACCESS对象进行编程,还必需对ACCESS所提供的各项对象有一定了解,因为VB就是通过ACCESS对象的方法与属性,来完成各项操作与设置,下图为ACCESS2003的对象部分模型图例。图例对象和集合仅对象上图为对象模型,因为篇幅的问题,文中只显示模型中部分对象,要了解全部对象模型,请大家参阅帮助。(三)VB编程中ACCESSVBA与VB对象表述区别1、ACCESSVBA与VB的顶层对象都为Application,但在编程中ACCESSVBA顶层对象表述为:Application,而在VB编程中顶层对象用简写:App表述(到VB.NET又改回了Application)。例程:在VB编程中获得VB及ACCESSVBA获取当前路径实例:在VB中获得当前路径:App.Path在VB中获得ACCESS的当前路径:Application.CurrentProject.Path在各应用程序之间调用各组件时通常在对象前加上库名,如:来表述,但因为与顶层对象原本表述就存在区别,在中可以直接用表述应用程序对象,并不会产生冲突的问题。2、ACCESSVBA和VB中部分预定义类对象(如:窗体、控件等)表述基本相同,以“标签控件”为例,VB与ACCESSVBA均为Label,在VB编程中为了与ACCESS预定义类对象加以区别,ACCESS标签对象通常用ACCESS.LabeI表述。例程:在VB编程中定义VB及ACCESS标签控件对象实例:在VB中定义VB标签对象:Dimm_LabelAsLabel在VB中定义ACCESS标签对象:Dimm_LabelAsAccess.Label在进行编程时,特别需注意对象表述区别的问题,否则无法编译或是编译后在调用中报错。(四)VB编程中关于ACCESSVBA专属常量ACCESSVBA专属常量以“ac”开头,女口:控件类(AcControIType)中的文本控件常量为acTextBox,这些常量不一定能被VB所识别,解决办法通常不使用“常量名”,而直接使用“常量值”,或以输入参数方式传递的方法来解决。例程:实现隐藏所有文本控件。acTextBox常量值为109。DimctlAsAccess.Control申明ACCESS控件对象DimfrmCltAsAccess.Controls申明ACCESS控件集合遍历所有ACCESS控件集合,如为文本控件,则不显示该控件ForEachctlInfrmClt.Controls文本控件类常量值为109,以常量值替代acTextBox常量名Ifctl.ControlType=109Thenctl.Visible=FalseNext中通过程序方式获取,如:在你可以通过帮助查阅专属常量值,也可以在立即窗口输入回车,就可以常量值为:二、DLL封装ACCESS对象实例演示(一)ACCESS的MDB实例MDB实例演示获得ACCESS版本信息,并在标签Label。中显示(见下图),具体参看实例中frmVer6窗体中的代码,及类模块CIsVeresion中代码。实例中各窗体中具体演示了,代码按封装需要整理的思路。实例涯示:通过封装好的口回态撻接库菽得当前ACCESS版本号:frmVer6窗体加载事件代码PrivateSubForm_Load()申明自定义类的实例Dimm_VerAsNewClsVeresionm_Ver.objAddItemLabel0调用自定义类的objAddItem方法EndSub例程:CIsVeresion类模块代码程序功能:定义类接口,将版本信息输出并在标签中显示PublicSubobjAddItem(m_labelAsLabel)m_label.Caption=AppVersionEndSub函数功能:输出ACCESS版本信息PrivateFunctionAppVersion()AsStringDimstrVerAsString定义字符串变量将版本号赋值给字符串变量strVer=Application.Version根据版号输出对应版本信息SelectCasestrVerCase8.0AppVersion=Access97Case9.0AppVersion=Access2000Case10.0AppVersion=Access2002Case11.0AppVersion=Access2003Case12.0AppVersion=Access2007EndSelectEndFunction(二)DLL的封装ACCESS对象实现1、打开VB6.0编辑器,点菜单【新建工程】在【新建工程】对话框中,点选【ActiveXDLL】点确定】。2、修改工程名及类名,实例中我定义的工程名:GetAccVer,类名:CIsAccVer,修改完成以后点选菜单【保存】工程(见下图)。工程名就是我们后面将引用的库名,类模块名为代码中我们申明的类名。3、点菜单【工程】【引用】,打开【引用对话框】,点选“MicrosoftAccess11.0ObjectLibrary”完成对当前版本ACCESS应用程序对象的引用。可用的引用(A):ccVerMessengerPrivateTypELilir:ryMessengerSignatureSourLdTypELilir:ryMessenEerTt-tsLilir:rvMicrosoftMicrosoftMicrosoftMicrosoftMicrosoftMicrosoftMicrosoftMicrosoftMicrosoftMiryiit.-i4-+AccessB:rCodeCorLtrol9.0ActiveServerPagesUbjectLibr:d:ActiveM0vieContrijlActiveXActiveXActiveXActiveXActiveXActiveXilr+!丫#0厂Tl+jsllKDataDataDataDataDataDataUbjectsUbjectsUbjectsUbjectsUbjectsUbjectsIlliCD(Multi-dimm:2.U2.12.52.62.7?:=:Lilir:ryLilir:ryLilir:ryLilir:ry伙严呵&忧先级MicroEuftAccess11.0ObjectLibrary定位:C:ProgramFilesMicrosot0iceOFFICE11MSACC.OLE语言:标准4、将MDB中类模块CIsVeresion代码复制到VB中CIsAccVer类模块中,按前面我们所述的VB中实现ACCESS对象编程的注意要点略做修改。(见下图划红线部分)、因为与顶层应用程序对象,表述原本就有区别,所以无需特别区分。、因为与顶层应用程序对象,表述原本就有区别,所以无需特别区分。、i因为与中标签类对象都为,因此加上库名()加以区别;、因为与顶层应用程序对象,表述原本就有区别,所以无需特别区分。例程:CIsAccVer类模块代码程序功能:定义DLL接口,将版本信息输出并在标签实例中显示PublicSubobjAddItem(m_labelAsAccess.Label)m_label.Caption=AppVersionEndSub函数功能:输出ACCESS版本信息PrivateFunctionAppVersion()AsStringDimstrVerAsString定义字符串变量将版本号赋值给字符串变量strVer=Application.Version根据版号输出对应版本信息SelectCasestrVerCase8.0AppVersion=Access97Case9.0AppVersion=Access2000Case10.0AppVersion=Access2002Case11.0AppVersion=Access2003Case12.0AppVersion=Access2007EndSelectEndFunction4、编译DLL,点菜单【文件】-【GetAccVer.dl1】动态链接库,封装DLL就完成了。你现在可以在ACCESS中引用该DLL测试一下看看成果了。参看实例中frmVer7窗体,如实例引用报错,请重新引用GetAccVer.d11即可。因为本人认知及文字水平所限,不免有错漏之处,还请大家斧正。本文的Word文稿、VB源码、MDB实例均在实例包中。在后文中我们主要就动态链接库引用的方法和技巧结合实例进行探讨。江羽2010-05-30午
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!