设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3414|回复: 7
打印 上一主题 下一主题

[模块/函数] accdb文件用代码压缩修复的方法

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2014-1-7 23:19:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 盗梦 于 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"   '最后按下“压缩修复”菜单项对应的快捷键


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2014-1-7 23:43:39 | 只看该作者
Good, 支持 源创

点击这里给我发消息

3#
发表于 2014-1-8 00:58:29 | 只看该作者
顶起
回复

使用道具 举报

4#
发表于 2014-1-8 08:30:35 | 只看该作者
谢谢分享
回复

使用道具 举报

5#
发表于 2014-1-8 10:14:20 | 只看该作者
可以设置成关闭时自动压缩,也能起到压缩的效果

点击这里给我发消息

6#
 楼主| 发表于 2014-1-8 10:16:24 | 只看该作者
漫步云端 发表于 2014-1-8 10:14
可以设置成关闭时自动压缩,也能起到压缩的效果

自动关闭压缩也可以用代码设置。我不想自动,只是想点一个按钮的时候就压缩修复

点击这里给我发消息

7#
发表于 2014-1-9 11:08:39 | 只看该作者
很实用的方法

点击这里给我发消息

8#
 楼主| 发表于 2014-1-9 11:17:31 | 只看该作者

嘻嘻,投机取巧了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-6-7 08:23 , Processed in 0.085806 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表