Office中国论坛/Access中国论坛

标题: [求助]关于数据库压缩的问题 [打印本页]

作者: ysgm1978g    时间: 2006-5-15 03:22
标题: [求助]关于数据库压缩的问题
有很多数据库,每次运行后体积都增大不少,逐一打开工具-数据库实用工具-压缩和修复数据库来压缩实在麻烦,有没有什么好办法可以不用逐一打开数据库就能实现压缩??

谢谢先!
作者: 一点通    时间: 2006-5-15 04:33
作 者:tmtony
摘 要:ACCESS可以在退出时压缩数据库,但是我想在代码中来压缩当前打开的数据库,能办到吗? 正 文: ACCESS只能压缩已关闭的ACCESS数据库,因此,不能在代码中直接对当前的数据库进行。 但是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

或者:

在菜单栏选择-》工具-》选项-》常规-》关闭时压缩-》打上钩
就可以了
作者: andymark    时间: 2006-5-15 05:25
或者在窗体上建个按钮执行下面的代码

CommandBars("menu bar").Controls("工具(&T)").Controls("数据库实用工具(&D)").Controls("压缩和修复数据库(&C)...").accDoDefaultAction
作者: ysgm1978g    时间: 2006-5-15 06:14
谢谢两位

但是,两位的方法好像也只能对当前数据库进行压缩,也就是说还是必须逐一打开数据库,仍旧麻烦
作者: andymark    时间: 2006-5-15 06:39
以下是引用ysgm1978g在2006-5-14 22:14:00的发言:


谢谢两位

但是,两位的方法好像也只能对当前数据库进行压缩,也就是说还是必须逐一打开数据库,仍旧麻烦



      可以尝试用OpenCurrentDatabase的方法打开数据库,再通过上面的方法进行压缩
作者: 一点通    时间: 2006-5-15 07:21
paul16的例子

使用代码压缩后端数据库!
Public Sub 压缩后端数据库() '压缩后端数据
Dim StrFTemp As String
Dim StrFName As String
Dim Lstar As Long, Lend As Long
StrFName = "D:\PoseSky商业管理软件\PoseSky_be.mdb"
StrFTemp = "D:\PoseSky商业管理软件\temp001.mdb"
If Dir(StrFTemp) <> "" Then Kill StrFTemp
If Dir(StrFName) <> "" Then Name StrFName As StrFTemp Else MsgBox StrFName & "不存在,无法进行压缩!"
DBEngine.CompactDatabase StrFTemp, StrFName, , , ";pwd=密码"
Kill StrFTemp
End Sub

上例子变通修改一下就可压缩别的数据库了
作者: andymark    时间: 2006-5-15 07:26
一次压缩多个数据库的例子

[attach]17753[/attach]

作者: ysgm1978g    时间: 2006-5-16 06:13
谢谢谢谢谢谢谢谢谢谢!!!!!!!!!!
作者: jamedog    时间: 2006-8-14 03:17
继续努力

[此贴子已经被作者于2006-8-13 20:29:19编辑过]


作者: wd0001    时间: 2006-8-31 16:44
用SQL语言
作者: ysgm1978g    时间: 2006-10-18 04:42
忘了,再来看一下
作者: sbsfhgl    时间: 2007-6-19 01:14
.




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