设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: todaynew
打印 上一主题 下一主题

[模块/函数] 【Access小品】遍历--Access常用手段

[复制链接]
11#
 楼主| 发表于 2009-11-25 06:21:39 | 只看该作者
感谢首长和同志们支持
12#
发表于 2009-11-25 07:33:25 | 只看该作者
感谢首长和同志们支持
todaynew 发表于 2009-11-25 06:21


作品愈來愈精湛了~
要嚴重支持一下~
呵呵!
13#
发表于 2009-11-25 08:51:24 | 只看该作者
好东西!
14#
发表于 2009-11-25 09:02:32 | 只看该作者
学习,谢谢!!
15#
 楼主| 发表于 2009-11-25 18:15:56 | 只看该作者
增加两个函数:


Function GetObject(ObjectType As String, Accessname As String) As String
'功能:获取其他Access数据库中的对象字符串
'参数:ObjectType--类型参数,AllForms=窗体;AllReports=报表;AllMacros=宏;AllModules=模块;AllDataAccessPages=数据访问页
'     Accessname --Access数据库名称字符串
Dim appAccess As New Access.Application
Dim obj As AccessObject
Dim objs As Object

appAccess.OpenCurrentDatabase Accessname
appAccess.Visible = True
Select Case ObjectType
    Case "AllForms"
        Set objs = appAccess.CurrentProject.AllForms
    Case "AllReports"
        Set objs = appAccess.CurrentProject.AllReports
    Case "AllMacros"
        Set objs = appAccess.CurrentProject.AllMacros
    Case "AllModules"
        Set objs = appAccess.CurrentProject.AllModules
    Case "AllDataAccessPages"
        Set objs = appAccess.CurrentProject.AllDataAccessPages
    Case Else
        Exit Function
End Select

For Each obj In objs
    If obj.IsLoaded = False Then
        GetObject = GetObject & obj.Name & ";"
    End If
Next obj
appAccess.CloseCurrentDatabase
Set appAccess = Nothing
End Function


Function GetObjCtl(ObjectType As String, Accessname As String, Objectname As String) As String
'功能:获取其他Access数据库中的对象中控件字符串
'参数:ObjectType--类型参数,AllForms=窗体;AllReports=报表;AllMacros=宏;AllModules=模块;AllDataAccessPages=数据访问页
'     Accessname--Access数据库名称字符串
'     Objectname --对象名称字符串
Dim appAccess As New Access.Application
Dim ctls As Controls
Dim ctl As Control
Dim obj As Object

appAccess.OpenCurrentDatabase Accessname
appAccess.Visible = True
Select Case ObjectType
    Case "AllForms"
        appAccess.DoCmd.OpenForm Objectname
        Set obj = appAccess.Forms(Objectname)
    Case "AllReports"
        appAccess.DoCmd.OpenReport Objectname, acViewPreview
        Set obj = appAccess.Reports(Objectname)
    Case "AllDataAccessPages"
        appAccess.DoCmd.OpenDataAccessPage Objectname
        Set obj = appAccess.DataAccessPages(Objectname)
    Case Else
        Exit Function
End Select

Set ctls = obj.Controls
For Each ctl In ctls
    GetObjCtl = GetObjCtl & ctl.Name & ";"
Next ctl

appAccess.CloseCurrentDatabase
Set appAccess = Nothing
End Function
16#
发表于 2009-11-25 20:56:49 | 只看该作者
收藏了,谢谢todaynew。

点击这里给我发消息

17#
发表于 2009-12-31 15:18:28 | 只看该作者
收藏了。谢谢!
18#
发表于 2009-12-31 20:37:56 | 只看该作者
谢谢了
19#
发表于 2010-1-1 09:55:31 | 只看该作者
谢谢,学习!
20#
发表于 2010-1-5 22:08:27 | 只看该作者
学习学习再学习!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-24 16:35 , Processed in 0.096386 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表