a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 136|回复: 0

[Access] 纯编码如何实现Access数据库的建立或压缩(4)

[复制链接]
发表于 2012-7-31 22:26:35 | 显示全部楼层 |阅读模式
 Set Ca = Nothing   CreateDBfile = True
0 p( I! @7 i0 ]( Y2 q  End If
/ w. {/ Q& U% V* J" u4 \  End function
, F6 A2 j: \: I! ]4 U4 T  Public function CompactDatabase(byVal dbFileName,byVal DbVer,byVal SavePath); C2 m5 v  ~  D' Y0 m
  ’压缩数据库文件" _6 T0 Q: Z& O9 z+ k0 s
  ’0 为access 970 A7 `0 J) T( L5 A
  ’1 为access 2000
: r, T, X' C6 q" W3 Y5 U  On Error resume next( y2 p% g) P1 z- ?; h6 y( F
  If Right(SavePath,1)"\" Or Right(SavePath,1)"/" Then SavePath = Trim(SavePath) & "\"6 r0 Y! e; }' B$ L/ e
  If Left(dbFileName,1)="\" Or Left(dbFileName,1)="/" Then dbFileName = Trim(Mid(dbFileName,2,Len(dbFileName)))
! u$ R5 C; i1 s  If DbExists(SavePath & dbFileName) Then
" Y, U. Q* V0 a4 H$ E: b  z- C  Response.Write ("对不起,该数据库已经存在!")
, g3 l( ?8 t6 ]/ J  CompactDatabase = False
! [8 T. x! Q3 {/ Z  Else. O/ c1 c* O7 J7 Y! t
  Dim Cd
1 E8 T1 f9 @% N5 H) E  Set Cd =Server.CreateObject("JRO.JetEngine")
' @- E4 V7 @1 o. b9 k: _& k  If Err.number0 Then5 V- H( F! ^* \- A0 ~, {
  Response.Write ("无法压缩,请检查错误信息
0 \" T# I* c% B1 k  Q  " & Err.number & ") D/ r9 _' \" M' X& c9 r
  " & Err.Description)9 Y& [3 @  X: J# S2 |( s
  Err.Clear2 f1 M+ f2 Z& P: H: v' x8 h0 R8 _+ x- q
  Exit function
) ^( w7 g% H9 {/ ^" k7 w- X9 d  End If
) q7 Z7 L+ u3 Q7 M; U# f" i  h& z  If DbVer=0 Then* y5 c  J' T' X4 r6 A( b
  call Cd.CompactDatabase("Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & SavePath & dbFileName,"Provider=Microsoft.Jet.OLEDB.3.51;Data
' H; V, r" O' n0 O" ~/ p, b& g' v  Source=" & SavePath & dbFileName & ".bak.mdb;Jet OLEDB;Encrypt Database=True")
8 e$ I3 e- c% e- M4 Z% ]  Else( Y* X9 g# o; e% p1 y+ M' `; N* O
  call Cd.CompactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &# i  ~% o2 k) U  B+ u) E; |
  SavePath & dbFileName,"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" && q4 ?+ D+ E+ S, d
  SavePath & dbFileName & ".bak.mdb;Jet OLEDB;Encrypt Database=True")
/ f6 E0 f! ^& H8 I/ C8 g; s' B  End If
5 E3 B" i/ w6 x, y: T  ’删除旧的数据库文件& Q$ O$ J6 G. n% W* d7 s) l
  call DeleteFile(SavePath & dbFileName)
  }9 d  r& p  [5 T! _  ’将压缩后的数据库文件还原
- @( i, H2 N  l3 \, `  call RenameFile(SavePath & dbFileName & ".bak.mdb",SavePath & dbFileName), F# w7 _  d  O, k9 e2 \
  Set Cd = False6 O; F; s2 Z) D
  CompactDatabase = True
' y+ _; v+ M. p  s6 F  End If
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-16 04:52 , Processed in 0.194625 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表