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

[access报表]怎样打开外部数据库中的报表

时 间:2004-11-11 00:00:00
作 者:朱亦文(译)    ID:61  城市:岳阳
摘 要:怎样打开外部数据库中的报表? 通过使用自动化,并利用ACCESS提供的OpenCurrentDatabase方法来实现。

正 文:

(问):怎样通过自动化功能打开外部数据库中的报表?

 

(答):Access 97 以后的版本给了我们一个新的方法: OpenCurrentDatabase, 下列代码将使用这种方法来实现打开外部数据库中的报表。

Private Declare Function apiSetForegroundWindow Lib "user32" _
            Alias "SetForegroundWindow" _
            (ByVal hwnd As Long) _
            As Long

 

Private Declare Function apiShowWindow Lib "user32" _
            Alias "ShowWindow" _
            (ByVal hwnd As Long, _
            ByVal nCmdShow As Long) _
            As Long

Private Const SW_MAXIMIZE = 3
Private Const SW_NORMAL = 1

Function fOpenRemoteReport(strMDB As String, strReport As String, _
            Optional intView As Variant) _
            As Boolean
' strMDB: 外部数据库名称(含路径)
' strReport: 报表名称
' intView: 报表的打开方式

    Dim objAccess As Access.Application
    Dim lngRet As Long

    On Error GoTo fOpenRemoteReport_Err

    If IsMissing(intView) Then intView = acViewPreview

    If Len(Dir(strMDB)) > 0 Then
        Set objAccess = New Access.Application
        With objAccess
            lngRet = apiSetForegroundWindow(.hWndAccessApp)
            lngRet = apiShowWindow(.hWndAccessApp, SW_NORMAL)
            ' 第一次调用ShowWindow似乎不做任何事情
            lngRet = apiShowWindow(.hWndAccessApp, SW_NORMAL)
            .OpenCurrentDatabase strMDB
            .DoCmd.OpenReport strReport, intView
            Do While Len(.CurrentDb.Name) > 0
                DoEvents
  &n

Access软件网官方交流QQ群 (群号:483923997)       Access源码网店


专栏作家