vb.net压缩access文件(.accdb)

vb.net压缩access文件(.accdb),第1张

概述vb.net压缩access文件(.accdb) 由于access文件(.accdb)会记录 *** 作,所以即使执行了delete数据的处理,该文件的大小还是会不断增加. 解决思路:将原有的access文件(.accdb)复制给一个临时的access文件(.accdb),删除原有文件,再将临时文件复制回原文件名的文件 解决方法: 1.引入引用: 右键项目,选择“添加引用”,在窗口中选择“COM”标签,其 vb.net压缩access文件(.accdb)

由于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

总结

以上是内存溢出为你收集整理的vb.net压缩access文件(.accdb)全部内容,希望文章能够帮你解决vb.net压缩access文件(.accdb)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址: http://outofmemory.cn/langs/1284852.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存