Office中国论坛/Access中国论坛

标题: 如何壓縮自己本身 [打印本页]

作者: xinbao    时间: 2002-4-10 17:06
标题: 如何壓縮自己本身
不用退出時自動壓縮這個功能,access怎樣壓縮自己
譬如在程序做個commandbutton 按一下就壓縮自己
請高手賜教
作者: xinbao    时间: 2002-4-10 17:18
難題啊
高手在哪????????
作者: 大熊    时间: 2002-4-10 17:23
这有必要吗?
作者: xinbao    时间: 2002-4-10 17:26
有啊
我在程式里面做個
系統管理
里面有壓縮 備份 還原功能
所以要這樣做
作者: xinbao    时间: 2002-4-10 17:31
有啊
我在程式里面做個
系統管理
里面有壓縮 備份 還原功能
所以要這樣做
作者: 大熊    时间: 2002-4-10 17:48
反正退出就压缩了,何必多此一举?
作者: xinbao    时间: 2002-4-10 18:29
但退出是每次都壓縮
我想要它壓縮就壓縮
作者: huanghai    时间: 2002-4-10 20:45
可以通调用菜单来做,不过参体参数我不知道,那位知道请指教
作者: binbow_z    时间: 2002-4-11 04:07
试试这个:
'mypath,myfile为数据库路径和数据库名
Me.tsxx.Caption = "正在压缩和修复数据库......."

DBEngine.CompactDatabase mypath & "\" & myfile, mypath & "\" & "comptemp.mdb"
Kill mypath & "\" & myfile
Name mypath & "\comptemp.mdb" As mypath & "\" & myfile
Me.tsxx.Caption = Me.tsxx.Caption & "完毕"

建议你去书籍下载《MICROSOFT ACCESS2000语言与数据访问参考手册》(第一个,9M)DAO参考中对CompactDatabase 方法有极为详细的解释
作者: tmtony    时间: 2002-4-11 04:22
标题: 如何壓縮自己本身
压缩自己好像有问题
提示文件正在被使用

作者: binbow_z    时间: 2002-4-11 04:29
我这个是压缩后端数据库的,在前端启动时使用,啊?书上讲这个只能压缩关闭的数据库,小七兄有一段源码,让我去找找
作者: binbow_z    时间: 2002-4-11 04:35
这是七兄的代码,压缩前也要关闭数据库

修复数据库的函数:

Function RepDB(strDBPathName As String)
On Error GoTo err_RepDB
DBEngine.RepairDatabase strDBPathName
RepDB = "ass"
Exit Function
err_RepDB:
Select Case Err.Number
   Case 3356
       MsgBox Err.Description & vbLf & _
           "准备修复的数据库处于打开状态,请关闭所有操作后重试!"
   Case Else
       MsgBox Err.Description
End Select
RepDB = CVErr(65535)
End Function

压缩数据库的函数:

Function ComDB(strDBPathName As String)
On Error GoTo err_ComDB
Dim strTempName As String
Randomize
strTempName = Environ("Temp") & "\TempDB" & _
   Int((99 * Rnd) + 1) & ".mdb"
   DBEngine.CompactDatabase strDBPathName, strTempName
   Kill strDBPathName
   Name strTempName As strDBPathName
   ComDB = "ass"
   Exit Function
err_ComDB:
   MsgBox Err.Description
ComDB = CVErr(65534)
End Function

作者: binbow_z    时间: 2002-4-11 04:39
能否采用先关闭数据库,再压缩,然后再打开,在ACCESS2000中文版高级编程中有一例子,先让用户退出再压缩,那程序太难了,没看懂
作者: binbow_z    时间: 2002-4-11 04:48
欲知道压缩数据库详细信息,可去此地
http://www.mvps.org/access/general/gen0013.htm
作者: zhuyiwen    时间: 2002-4-11 04:55
binbow_z版主,辛苦了
作者: tsx    时间: 2002-4-11 05:18
盖茨的压缩都是在关闭状态下运行,难道你要超过他!!!???
作者: tsx    时间: 2002-4-11 05:20
盖茨的压缩都是在关闭状态下运行,难道你要超过他!!!???
作者: 大熊    时间: 2002-4-11 05:21
想破脑袋也没想出有什么实用性!
作者: binbow_z    时间: 2002-4-11 05:38
以下是引用大熊在2002-4-10 21:20:56的发言:
想破脑袋也没想出有什么实用性!

他的实用性是在启动时检测并修复后端数据库的错误
对于大熊版主的观点,本人有一点小看法
作者: wangling    时间: 2002-4-17 13:37
标题: IT'S OK
SendKeys "%W1"   
SendKeys "%TDC"

作者: tmtony    时间: 2002-4-17 16:31
wangling,非常不错的方法,效果很好。
不过,需注意一点,如果引用这句语法的窗体是弹出窗体就不起作用,如果不是则OK
我这几天也试到另外一种比较好的办法,不过我还要试试各种环境下看看是否都可以
作者: tmtony    时间: 2002-4-17 20:02
我使用的方法是:CommandBars("Tools").Controls(7).CommandBar.Controls(2)
实际上是调用压缩与修复数据功能,弹出窗体也适用!
作者: tsx    时间: 2002-4-19 19:20
有新意,请问tmtony总版主代码如何写才能这样简单地从菜单上调用压缩与修复数据功能?
作者: huanghai    时间: 2002-4-19 21:03
tmtony ,顺呼民意,做一个实例吧:)
作者: tmtony    时间: 2002-4-19 21:08
没问题。等下就发上来。
作者: tmtony    时间: 2002-4-20 04:32
下午做了个例子,只是发错了地方:)
请看看这个例程
http://www.office-cn.net/bbs/http://www.office-cn.net/vvb/uploadimages/200241913375847202.rar




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