Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-教程

VBA代码编程方法详解(三)

时 间:2010-10-25 19:46:46
作 者:江羽   ID:3967  城市:南昌
摘 要:VBA代码编程方法详解(第三部分)
正 文:

4.2 移除工程中部件

4.2.1 移除当前工程部件自定义过程

'************************************************************************

'公用过程:移除指定部件或删除某类部件

'ComponentType部件类别(可选参数),默认为标准模块

'VBCompName部件名(可选参数),默认不指定部件名

'***********************************************************************

Public Sub RemoveVBComponents(Optional VBCompType As vbext_ComponentType, _

                              Optional VBCompName As String = "")

   Dim VBProj     As VBProject      '申明工程对象

   Dim VBComp   As VBComponent   '申明部件对象

   Dim VBComps  As VBComponents  '申明部件集合

   '设定为当前工程

   Set VBProj = VBE.ActiveVBProject

'设定为当前工程部件

   Set VBComps = VBProj.VBComponents

   '判断是否指定部件名,如未指定则删除所有指定类型部件

   If VBCompName <> "" And VBCompType = 0 Then

      VBComps.Remove VBComps(VBCompName)

   Else

      For Each VBComp In VBComps

         If VBComp.Type = VBCompType Then

            VBComps.Remove VBComps(VBComp.Name)

         End If

      Next

   End If

End Sub

4.2.2 调用自定义过程,移除指定类型所有部件示例

'移除指定所有类模块

Call RemoveVBComponentsvbext_ct_ClassModule

4.2.3 调用自定义过程,移除指定名部件示例(无需指定部件类型)

'移除指定名部件,实例:指定“我的窗体”

Call RemoveVBComponents(, "我的窗体")

 

4.3 列举部件名及类型信息

4.3.1 获得部件类型自定义函数

'-------------------------------------------------------------------------------

'函数功能:根据所获取部件类型常量值,获得部件类别名

'-------------------------------------------------------------------------------

Function ComponentTypeToString(ComponentType As vbext_ComponentType) As String

   Select Case ComponentType

      Case vbext_ct_ClassModule

         ComponentTypeToString = "类模块"

      Case 100

         ComponentTypeToString = "其它"

      Case vbext_ct_MSForm

         ComponentTypeToString = "微软窗体"

      Case vbext_ct_StdModule

         ComponentTypeToString = "标准模块"

      Case Else

         ComponentTypeToString = "未知类: " & CStr(ComponentType)

   End Select

End Function

4.3.2 获取工程中所有部件名及类型自定义函数

'----------------------------------------------------------------------------------------

'函数功能:列出所有部件名及类型

'    用:ComponentTypeToString 函数,获取部件类型

'----------------------------------------------------------------------------------------

Public Function AllVBComponentsAndType() As String

   Dim VBComp    As VBComponent     '申明工程部件

   Dim VBComps   As VBComponents     '申明部件集合

   Dim strComps    As String             '输出结果

   Dim strObjName  As String             '对象名

   Dim strType      As String             '类型名

  

   Set VBComps = VBE.ActiveVBProject.VBComponents

   '遍历部件集合,将部件名及类型值赋值给变量

   For Each VBComp In VBComps

      strObjName = VBComp.Name

      strType = ComponentTypeToString(VBComp.Type)

      '如果为其它类型,判断是ACCESS窗体、报表或其它对象

      If strType = "其它" Then

         If InStr(strObjName, "Form") > 0 Then

            strType = "窗体"

         ElseIf InStr(strObjName, "Report") > 0 Then

            strType = "报表"

         Else

            strType = "其它"

         End If

      End If

      '将获取的部件名及类型逐行输出

      strComps = strComps & strObjName & Space(12) & strType & vbCrLf

   Next

   AllVBComponentsAndType = strComps   '赋值输出

End Function


  上一页 下一页



Access软件网QQ交流群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助