如何在access中压缩当前数据库-朱亦文
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


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

发表时间:2004/11/10 评论(0) 浏览(8355)  评论 | 加入收藏 | 复制
   
摘 要: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群(群号:198465573)
 
 相关文章
在access中自动压缩当前数据库  【UMVsoft整理  2008/6/26】
【SetOption】方法实现退出数据库时自动压缩  【落尘  2012/3/26】
VBA直接解压/压缩文件  【爱在深秋  2013/12/20】
数据库是怎么进行压缩的?  【ugmbbc   2015/4/3】
【Access小品】如何放屁--再论压缩与解压  【煮江品茶  2015/5/21】
常见问答
技术分类
相关资源
文章搜索
关于作者

朱亦文

文章分类

文章存档

友情链接