
1)删除不必要的数据和无用的ACCESS数据库对象例如表、查询、窗体和模块等;
2)压缩数据库
ACCESS2003压缩举例:打开数据库,点击菜单(工具)——数据库实用工具——压缩和修复数据库
非常规办法:
ACCESS数据库经过一段时间添加、更改和删除数据库对象后会产生很多代码及数据库对象碎片和垃圾,对于这些东西常规办法是无法清除的。这也是为什么你的ACCESS数据删除很多数据后,大小不变的原因所在。
怎么办呢?可以这样做:先建立一个同名空白数据库,放在另一个文件夹下,接着打开该空白数据库,导入原数据库全部有用的对象(包括:表、窗体、查询、模块、页、宏,无用的不要导入)
ACCESS2003导入对象举例:文件——获取外部数据——导入 ,打开“导入”对话框选择需要缩小的数据库后,点击导入按钮,打开“导入对象”对话框 选择全部有用的数据库对象,例如表、窗体等等后点击“确定”按钮 完成导入全部数据库对象。
经过上述过程后,所有的数据库垃圾都会被清除掉。再对其进行一次压缩 *** 作,ACCESS数据库将会处在理论上最小状态。
ACCESS可在菜单上选择[压缩]来压缩当前正打开的数据库,如是我们就可以通过程序临时添加一个工具条按钮,然后使用SendKeys来模拟键盘 *** 作,实现压缩当前数据库,压缩后它会重新打开。函数如下:FunctionCompact()
'添加一个工具条
WithCommandBars.Add(,msoBarFloating,,True)
'在工具条上添加一个按钮,这个按钮是从系统菜单的[工具]中[压缩]产生的
.Controls.AddmsoControlButton,CommandBars("Tools").Controls(7).CommandBar.Controls(2).Id
.Visible=True
'将焦点移到该按钮上
.Controls(1).SetFocus
'模拟击键
SendKeys"{ENTER}"
EndWith
EndFunction
Microsoft的Access继承了一些FoxBase DBF的特点,个人估计是DBF的改进,比如FoxBase说在删除数据后其实并没有真正删除,只是加上一个删除标记,在需要的时候可以用Recall命令恢复这些数据,如果想彻底删除,首先需要独占访问数据表,然后使用Pack命令来清除这些已经被删除的数据,可以称之为“压缩”数据表。 Access也是一样,如果是文本和数字等一般数据恐怕不太明显,如果是OLE对象,加入后MDB文件大小会剧增,而在删除这些数据行后文件大小并没有相应减少,日积月累这些无用的数据不光占用了大量硬盘空间,而且也会降低数据库的访问效率,这时已经没有Pack命令可用了,但可以使用Access的“压缩和修复数据库”(在“工具”菜单中)来将那些无用的数据清除掉。如果你的程序使用Access作为数据库,使用菜单命令来“压缩数据库”肯定是不太合适的,况且有时候需要自动来完成这个 *** 作,所以我们需要把它用代码来完成,需要调用COM对象的方法,压缩后的数据库被保存为另外一个文件,再把原文件删除(其实Access自己也是这么做的),代码如下:#include "objbase.h" //牵涉到COM对象,必须包含此头文件AnsiString srcmdb="c://test.mdb"//原文件名(压缩之前)欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)