如何压缩Access数据库

如何压缩Access数据库,第1张

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"//原文件名(压缩之前)

 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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6762626.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存