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

如何在access中压缩当前数据库

时 间:2004-11-10 00:00:00
作 者:朱亦文   ID:61  城市:岳阳
摘 要:ACCESS可以在退出时压缩数据库,但是我想在代码中来压缩当前打开的数据库,能办到吗?

正 文:

ACCESS只能压缩已关闭的ACCESS数据库,因此,不能在代码中直接对当前的数据库进行。但可以调用ACCESS菜单的方法解决这个问题。accDoDefaultAction是一个Office Object Library没有公布的调用菜单的方法,下面就是解决这个问题的例程:

 

'对于简体中文版OFFICE:
'压缩当前使用的数据库
'要引用Microsoft Office 10.0(或9.0) Object Library
'作者:朱亦文
Public Sub CompactDB()
    CommandBars("Tools"). _
    Controls("数据库实用工具(&D)"). _
    Controls("压缩和修复数据库(&C)..."). _
    accDoDefaultAction
End Sub

'英文版Office:
'压缩当前使用的数据库
'要引用Microsoft Office 10.0(或9.0) Object Library
'作者:朱亦文
Public Sub CompactDB()
    CommandBars("Menu Bar"). _
    Controls("Tools"). _
    Controls("Database utilities"). _
    Controls("Compact and repair database..."). _
    accDoDefaultAction
End Sub

或者:

'压缩当前使用的数据库
'要引用Microsoft Office 10.0(或9.0) Object Library
'作者:朱亦文
Public Sub CompactDB()
    CommandBars("Tools").Controls(7).Controls(2).accDoDefaultAction
End Sub

注:运行本程序,你必须引用 Microsoft Office 9.0 Object Library (Office 2000)或 Microsoft Office 10.0 Object Library (Office XP)

    下面是来ACCESS中国站长tmtony的解决方法:

    但是ACCESS可在菜单上选择[压缩]来压缩当前正打开的数据库,如是我们就可以通过程序临时添加一个工具条按钮,然后使用 SendKeys 来模拟键盘操作,实现压缩当前数据库,压缩后它会重新打开。函数如下:

Function Compact()
   ' 添加一个工具条
   With CommandBars.Add(, msoBarFloating, , True)
     ' 在工具条上添加一个按钮,这个按钮是从系统菜单的[工具]中[压缩]产生的
     .Controls.Add msoControlButton, CommandBars("Tools").Controls(7).CommandBar.Controls(2).Id
     .Visible = True
     ' 将焦点移到该按钮上
     .Controls(1).SetFocus
     ' 模拟击键
     SendKeys "{ENTER}"
   End With
End Function

注:运行本程序,你必须引用 Microsoft Office 9.0 Object Library (Office 2000)或 Microsoft Office 10.0 Object Library&n

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


常见问答:

技术分类:

相关资源:

专栏作家

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