Office中国论坛/Access中国论坛

标题: accdb文件用代码压缩修复的方法 [打印本页]

作者: 盗梦    时间: 2014-1-7 23:19
标题: accdb文件用代码压缩修复的方法
本帖最后由 盗梦 于 2014-1-7 23:22 编辑

标题:accdb文件用代码压缩修复的方法
作者:阿航

问题:accdb文件是Access07版本以上的格式,旧的方法已经不适用了。被微软禁止了。
          我们先来看看旧方法(旧方法适用03,2000等版本)是怎么实现压缩修复的。
旧方法:
       方法一:使用CommandBars
       代码:CommandBars("Tools").Controls(6).controls(2).accDoDefaultAction

       方法二:使用Docmd
       代码:DoCmd.RunCommand acCmdCompactDatabase

尝试使用旧方法压缩修复:
       如果在Access07版本以上使用上面那两种方法,会出现提示不能使用宏或代码压缩修复数据库。
坑啊!

推陈革新:
       百思不得其解,正在郁闷之时,突然灵光一闪。既然微软提升我们要用菜单栏上的压缩修复。
那也就是说,我可以通过快捷键找到那个压缩修复的选项。那就应该可以用SendKeys模拟键盘按下。

新方法:
       SendKeys "%"   '首先,按下Alt
       SendKeys "Y"   '接着按下“工具”菜单对于的快捷键
       SendKeys "C"   '最后按下“压缩修复”菜单项对应的快捷键

优化:
       试着,运行上面的代码。果然可以实现压缩修复。激动!
       不过,不知道隐藏了Ribbon界面之后,这个方法能不能实现。于是,我试着隐藏Ribbon界面。
然后再运行一下代码——果然不行。看来还要优化一下,得把Ribbon显示出来。

优化结果:       on error resume next                     '错误处理
       DoCmd.ShowToolbar "Ribbon", acToolbarYes '显示Ribbon界面
       SendKeys "%"   '首先,按下Alt
       SendKeys "Y"   '接着按下“工具”菜单对于的快捷键
       SendKeys "C"   '最后按下“压缩修复”菜单项对应的快捷键



作者: tmtony    时间: 2014-1-7 23:43
Good, 支持 源创
作者: 岭南王子    时间: 2014-1-8 00:58
顶起
作者: leonshi    时间: 2014-1-8 08:30
谢谢分享
作者: 漫步云端    时间: 2014-1-8 10:14
可以设置成关闭时自动压缩,也能起到压缩的效果
作者: 盗梦    时间: 2014-1-8 10:16
漫步云端 发表于 2014-1-8 10:14
可以设置成关闭时自动压缩,也能起到压缩的效果

自动关闭压缩也可以用代码设置。我不想自动,只是想点一个按钮的时候就压缩修复
作者: t小宝    时间: 2014-1-9 11:08
很实用的方法
作者: 盗梦    时间: 2014-1-9 11:17
t小宝 发表于 2014-1-9 11:08
很实用的方法

嘻嘻,投机取巧了




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3