博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vb.net压缩access文件(.accdb)
阅读量:6413 次
发布时间:2019-06-23

本文共 2221 字,大约阅读时间需要 7 分钟。

由于access文件(.accdb)会记录操作,所以即使执行了delete数据的处理,该文件的大小还是会不断增加.

解决思路:将原有的access文件(.accdb)复制给一个临时的access文件(.accdb),删除原有文件,再将临时文件复制回原文件名的文件

解决方法:

1.引入引用:

右键项目,选择“添加引用”,在窗口中选择“COM”标签,其中选择“Microsoft Jet and Replication Objects 2.x Library”,点击确定

注:上面的“2.x”中的“x”,是该Library的版本号。

点击“确定”之后,会将Microsoft ActiveX Data Objects Library (ADODB) 和 JRO 这两个DLL添加进项目。

 

 2.vb.net程序

'压缩access按钮处理     Private Sub btnClearAccess_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClearAccess.Click '关闭access链接         closeAccessConnection() Dim jro As JRO.JetEngine         jro = New JRO.JetEngine()         accessPath = txtAccess.Text.Trim Try If accessPath <> "" Then                 jro.CompactDatabase("Provider=microsoft.ACE.OLEDB.12.0;Mode=share Exclusive;Data Source=" & accessPath, _ "Provider=microsoft.ACE.OLEDB.12.0;Mode=share Exclusive;Data Source=" & accessPath.Replace(".accdb", "1.accdb") & ";Jet OLEDB:Engine Type=5") '删除Access文件                 Kill(accessPath)                 jro.CompactDatabase("Provider=microsoft.ACE.OLEDB.12.0;Mode=share Exclusive;Data Source=" & accessPath.Replace(".accdb", "1.accdb"), _ "Provider=microsoft.ACE.OLEDB.12.0;Mode=share Exclusive;Data Source=" & accessPath & ";Jet OLEDB:Engine Type=5") Kill(accessPath.Replace(".accdb", "1.accdb")) '清空内容                 txtResult.Clear() '刷新显示                 txtResult.Refresh()                 txtResult.AppendText(Format(Now(), "H:mm:ss") & Constant.SPACE_2 & "压缩成功!!" & Chr(13) & Chr(10))                 txtResult.Show() Else MsgBox("请选择相应的 Access 数据库文件!!") End If Catch ex As Exception MsgBox("选择的 Access 数据库文件无法正常打开,请确认该文件是否存在!!") End Try End Sub '关闭access数据库链接     Private Sub closeAccessConnection() Dim dbConnectionString As String = "Provider=microsoft.ACE.OLEDB.12.0;Mode=share Exclusive;Data Source=" & accessPath Dim dbConnection As OleDbConnection = New OleDbConnection(dbConnectionString) Try If dbConnection.State <> ConnectionState.Closed Then                 dbConnection.Close() End If If accessConn.State <> ConnectionState.Closed Then                 accessConn.Close() End If Catch Ex As Exception MsgBox("关闭 access 数据库链接出错!!") End Try End Sub

 

转载于:https://www.cnblogs.com/st2012/archive/2012/04/06/2435367.html

你可能感兴趣的文章
FindBugs工具常见问题
查看>>
ECSHOP报错误Deprecated: preg_replace(): The /e modifier is depr
查看>>
【iOS】iOS之Button segue弹出popOver消除(dismiss)问题
查看>>
java多线程系列5-死锁与线程间通信
查看>>
数据库分库分表
查看>>
腾讯Hermes设计概要——数据分析用的是列存储,词典文件前缀压缩,倒排文件递增id、变长压缩、依然是跳表-本质是lucene啊...
查看>>
小程序模板嵌套以及相关遍历数据绑定
查看>>
Systemd入门教程:命令篇(转)
查看>>
java随机范围内的日期
查看>>
linux包之diff
查看>>
spring事务学习(转账案例)(二)
查看>>
[官方教程] [ES4封装教程]1.使用 VMware Player 创建适合封装的虚拟机
查看>>
http协议与http代理
查看>>
【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例...
查看>>
Redis+Spring缓存实例
查看>>
Storm集群安装详解
查看>>
centos7.x搭建svn server
查看>>
原码编译安装openssh6.7p1
查看>>
项目实战:自定义监控项--监控CPU信息
查看>>
easyui-datetimebox设置默认时分秒00:00:00
查看>>