压缩数据库(ACCESS)时遇到的问题........................

OLD_VB_FAN 2001-07-21 10:05:19
本人使用如下代码对一ACCESS数据库进行压缩,压缩后发现数据库由2.5M减少到了1.4M左右,但打开压缩后的数据库发现原有记录丢失,而且原表中的字段只有第一个字段还存在,其余的也丢失了!是何原因?如何解决?
————————————————————————————
dbs.Close
Dim JRO As JRO.JetEngine
Set JRO = New JRO.JetEngine
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists(App.Path & "\backup\mlc.mdb") Then fs.DeleteFile App.Path & "\backup\mlc.mdb"
JRO.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\mlc.mdb", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\backup\mlc.mdb;Jet OLEDB:Engine Type=4" '來源文件'目的文件

Dim fs2
Set fs2 = CreateObject("Scripting.FileSystemObject")
If fs2.FileExists(App.Path & "\mlc.mdb") Then fs2.DeleteFile App.Path & "\mlc.mdb"
fs2.copyfile App.Path & "\backup\mlc.mdb", App.Path & "\mlc.mdb"
Set dbs = OpenDatabase(App.Path & "\mlc.mdb")
MsgBox "数据库压缩成功", 64, "压缩完成"
————————————————————————————————————
修复数据库如何用代码完成呢?
...全文
161 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
OLD_VB_FAN 2001-07-24
  • 打赏
  • 举报
回复
呵呵,对不起版主,刚才突然死机了
南京真够热的,现在我的一间小书房中温度还有35度,机子吃不消,我只好换了一块不是太重要的硬盘再上来
请版主训示
playyuer 2001-07-24
  • 打赏
  • 举报
回复
我还没说完呢?
OLD_VB_FAN 2001-07-24
  • 打赏
  • 举报
回复
呵呵,班主大人光临,有失远迎,请上座
playyuer 2001-07-24
  • 打赏
  • 举报
回复
"小刀"(DAO)更好听!
OLD_VB_FAN 2001-07-24
  • 打赏
  • 举报
回复
谢谢两位
OLD_VB_FAN 2001-07-22
  • 打赏
  • 举报
回复
我已经用下述方法完成,没发现错误!
Dim fs
dbs.Close
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists(App.Path & "\backup\newmlc.mdb") Then fs.DeleteFile App.Path & "\backup\newmlc.mdb"
DBEngine.CompactDatabase App.Path & "\mlc.mdb", App.Path & "\backup\newmlc.mdb"
Dim fs2
Set fs2 = CreateObject("Scripting.FileSystemObject")
If fs2.FileExists(App.Path & "\mlc.mdb") Then fs2.DeleteFile App.Path & "\mlc.mdb"
fs2.copyfile App.Path & "\backup\newmlc.mdb", App.Path & "\mlc.mdb"
Set dbs = OpenDatabase(App.Path & "\mlc.mdb")
MsgBox "数据库压缩成功", 64, "压缩完成"
OLD_VB_FAN 2001-07-22
  • 打赏
  • 举报
回复
哦?我使用的是ACCESS97呀,让我按你的方法先试试看
飞天神笔 2001-07-22
  • 打赏
  • 举报
回复
要是JRO不支持中文的话,就用大DAO试试。
反正我用ACCESS97(中文字段)+ DAO成功了。
joeking 2001-07-21
  • 打赏
  • 举报
回复
在上述代码中已经包括了修复数据库,不过,我在使用过程中发现,因为引用JetEngine不支持中文,所以压缩了之后,ACCESS中与中文代码页相关的东西全部会丢失。所以直到现在,我还不敢用ACCESS2000做库……
上面的原因应该是你使用了中文字段名或者内含中文,所以会有丢失的问题。
最后我自己解决这个问题的方法是使用ACCESS97,并且还是打开工作空间来压缩与修复数据库(调用DAO3.51)来解决的。

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧