设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[Access本身] 怎么实现计算机每天定时自动压缩修复后台数据呢?

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2016-3-2 23:00:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问各位老师,

我的程序是已经拆分前段窗体和后台数据的,后台数据也是accdb文件,放在局域网里共享,然后把前端窗体分发到各个用户手上,用表链接实现多用户操作。

然后,后台数据里有很多表用自动编号作为主键,时常发生自动编号重复的问题。比如表1里已经有100条数据,如果添加新数据,新行的自动编号应该是101,但是有时候会出现新行自动编号变为77或者其他编号,然后数据库就会报错,指出是主键重复无法完成对表的修改或添加。即使是直接打开后台表,在新行里键入数据,自动编号也是错误的,无法成功添加新行。但是对原有数据做更新是没有问题。

遇到这种情况,用修复压缩数据库自动编号就能恢复正常。

所以,我想能不能让计算机每天在凌晨1点的时候,对共享的后台数据文件先做复制作为备份,然后自动进行修复压缩呢?(我深深知道这是指标不治本的方法)

我有写了一段手动压缩后台数据的代码,附在附件里,不知道有没有用。

PS:
        修复压缩的窗体上,左1按钮是压缩,中间是查看正在使用的用户名,右边是退出。点击压缩后,会出现对话框询问用户,是否按照默认路径压缩后台数据,如果选择[是],压缩的文件路径就是代码里的默认路径,如果选择[否]则会弹出文件选择窗口让用户自己选择修复压缩的文件路径。每次只能选择一个文件。
        压缩后,原文件会被重命名为 [原文件名] + [时间],压缩成功后的文件名字依旧是原来的文件名字。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

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

点击这里给我发消息

2#
发表于 2016-3-2 23:09:58 | 只看该作者
1.要求所有前台程序要退出。如果程序正在使用,后台数据库无法压缩的
2.然后在后台 设置一个程序,定期用代码压缩修改一下后台数据库

点击这里给我发消息

3#
 楼主| 发表于 2016-3-3 01:50:41 | 只看该作者
admin 发表于 2016-3-2 23:09
1.要求所有前台程序要退出。如果程序正在使用,后台数据库无法压缩的
2.然后在后台 设置一个程序,定期用 ...

谢谢老师的回答,不过我有些地方不是很明白,麻烦您解释一下,可以吗?

我在前台窗体里timer添加了判断语句,如果now()在某个时间区间内则直接退出Access,不知道这样可以吗?

后台程序里,我有个设想不知道是否能用,就是我另外建立一个accdb文件,里面写上压缩的代码,然后写一个batch文件,定时打开batch文件来运行压缩的accdb文件。不知道有没有更简单的方法呢?
4#
发表于 2016-3-3 08:56:17 | 只看该作者
站长说得对。你必须确信所有前台退出,详细请参考:
http://www.office-cn.net/thread-97826-1-1.html
定时处理,可以考虑使用计划任务,详细请参考:
http://www.office-cn.net/thread-121180-1-1.html

点击这里给我发消息

5#
发表于 2016-3-3 09:24:29 | 只看该作者
最好建立外部定时任务或程序 ,可参考Roych大师的链接文章
6#
发表于 2016-3-3 10:39:13 | 只看该作者
想实现定时压缩数据库,就像中国 和ROYCH说的那样,首先是退出所有前台程序,最好是在没有人使用的时间段来运行定时压缩程序,另外像 中国 所说的最好建立外部定时任务或程序。
7#
发表于 2016-3-3 10:40:13 | 只看该作者
具体代码如何实现,找 OFFICE中国和ROYCH 两位大师级的
8#
发表于 2016-3-3 10:51:36 | 只看该作者

点击这里给我发消息

9#
 楼主| 发表于 2016-3-3 15:55:32 | 只看该作者
todaynew 发表于 2016-3-3 10:51
http://www.office-cn.net/forum.php?mod=viewthread&tid=93784&highlight=%BA%F3%CC%A8%B9%DC%C0%ED

谢谢您的恢复。

不过我上文中的压缩是Access里数据库工具中‘压缩数据库’这个压缩.....不过老师的例子还有很有用的!!!

不知道自动运行Access里数据库工具中‘压缩数据库’怎么实现呢?
10#
发表于 2016-3-4 14:18:13 | 只看该作者
Charline 发表于 2016-3-3 15:55
谢谢您的恢复。

不过我上文中的压缩是Access里数据库工具中‘压缩数据库’这个压缩.....不过老师的例 ...

1、压缩数据库必须是在独占打开的状态下进行的。
2、因此多用户模式下,则必须关闭除本机意外的所有用户的数据库连接才能使用。
3、按todaynew版主的例子,你可以把按钮的代码写成一个autoexec宏来执行。
4、如果需要定时执行,仍然建议使用计划任务来完成。可以使用vbs或者bat定时打开该文件即可。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-3 01:53 , Processed in 0.086835 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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