[函数]实现打开外部数据库中的报表-钱玉炜
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


[函数]实现打开外部数据库中的报表

发表时间:2009/1/20 8:53:26 评论(0) 浏览(5519)  评论 | 加入收藏 | 复制
   
摘 要:[函数]实现打开外部数据库中的报表
正 文:

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
Loop
End With
End If
fOpenRemoteReport_Exit:
On Error Resume Next
objAccess.Quit
Set objAccess = Nothing
Exit Function
fOpenRemoteReport_Err:
fOpenRemoteReport = False
Select Case Err.Number
Case 7866:
' mdb 已经被用独占方式打开
MsgBox "该数据库:" & strMDB & _
vbCrLf & "已经被用独占方式打开!" & vbCrLf _
& vbCrLf & "请重新用共享方式打开,再试一次!", _
vbExclamation + vbOKOnly, "不能打开数据库"
Case 2103:
' 报表不存在
MsgBox "在这个" & strMDB & "数据库中不存在该报表:" & strReport & _
vbCrLf & vbCrLf , _
vbExclamation + vbOKOnly, "报表不存在"
Case 7952:
' 用户关闭了这个 mdb
fOpenRemoteReport = True
Case Else:
MsgBox "错误#: " & Err.Number & vbCrLf & Err.Description, _
vbCritical + vbOKOnly, "运行时错误"
End Select
Resume fOpenRemoteReport_Exit
End Function


Access软件网交流QQ群(群号:198465573)
 
 相关文章
窗体和报表中常用的几个关键字  【宏鹏  2013/4/17】
打印预览报表时直接导出为pdf文件的vba代码  【金宇  2013/4/30】
【Access示例】报表打印当前窗体内容  【缪炜  2013/6/21】
如何利用动态交叉表生成子窗体子报表  【蟹仔  2013/7/4】
快速日期选定与报表结合示例  【沈军  2013/7/22】
常见问答
技术分类
相关资源
文章搜索
关于作者

钱玉炜

文章分类

文章存档

友情链接