a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 130|回复: 0

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

[复制链接]
发表于 2012-7-31 22:26:35 | 显示全部楼层 |阅读模式
 Set Ca = Nothing   CreateDBfile = True% f1 i6 ^9 u! n
  End If6 X+ R* p3 Y( x
  End function
0 }; v3 r7 r# ?4 w2 \2 L5 G) k7 l  Public function CompactDatabase(byVal dbFileName,byVal DbVer,byVal SavePath)
8 J/ \& u7 O2 ?: ]  Q  ’压缩数据库文件8 f0 @3 B: Y* Q2 D
  ’0 为access 976 F5 X& Z* s" [7 m, ^4 j4 a
  ’1 为access 2000' M# y/ ~2 G, X" b! H0 P
  On Error resume next
1 R+ `9 i. ?8 \. N+ r7 {, \6 {  If Right(SavePath,1)"\" Or Right(SavePath,1)"/" Then SavePath = Trim(SavePath) & "\"1 u0 P/ J3 A1 D: b1 h
  If Left(dbFileName,1)="\" Or Left(dbFileName,1)="/" Then dbFileName = Trim(Mid(dbFileName,2,Len(dbFileName)))
6 Z$ b4 c- B/ L4 q. z  If DbExists(SavePath & dbFileName) Then  g! U4 {) B" y5 @4 D
  Response.Write ("对不起,该数据库已经存在!")% J2 W0 Z3 M2 f5 w
  CompactDatabase = False0 q- p% T! {4 M9 I
  Else& X2 C4 M" d- C: [. ]
  Dim Cd- ]; z; g+ b4 r/ S
  Set Cd =Server.CreateObject("JRO.JetEngine")
% ^2 G# G6 x5 X/ v8 l( Q# ]4 Y7 m7 U  If Err.number0 Then9 F  F2 ?- @2 a/ k
  Response.Write ("无法压缩,请检查错误信息2 g/ G  R+ N- C+ z/ p/ B
  " & Err.number & ") p& l  F3 E2 W% Z
  " & Err.Description)5 w; f. G& x; @6 ]+ \; E, o: j
  Err.Clear  G& \7 N& q+ k% }. {- v' ?) s
  Exit function
2 h" ?  z. N- e6 [6 @  End If
2 c% j8 B6 o7 A: T1 X) e  If DbVer=0 Then/ m2 d: L% N% |
  call Cd.CompactDatabase("Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & SavePath & dbFileName,"Provider=Microsoft.Jet.OLEDB.3.51;Data
! C7 d- t! b; j' G, x$ {9 g  Source=" & SavePath & dbFileName & ".bak.mdb;Jet OLEDB;Encrypt Database=True")
$ i( g/ n  z! c. K% h  Else
: C: S8 A1 l' Z8 t* Q, y  call Cd.CompactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &7 q( k2 D1 y& q5 N% t
  SavePath & dbFileName,"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &8 C6 I! q5 F) O/ U! ]1 C- O
  SavePath & dbFileName & ".bak.mdb;Jet OLEDB;Encrypt Database=True")5 X* s$ k! \# t
  End If0 d' B5 X7 f; o8 i
  ’删除旧的数据库文件2 S+ ~; z- v0 ?/ j
  call DeleteFile(SavePath & dbFileName)4 D0 Y8 U0 A/ {( E$ x7 F
  ’将压缩后的数据库文件还原$ V) G7 h; L# k$ t/ R) `! ^
  call RenameFile(SavePath & dbFileName & ".bak.mdb",SavePath & dbFileName)
9 O, h3 H; t, j0 F  Set Cd = False9 j2 f+ q# r% V% {: k  d2 o. _
  CompactDatabase = True5 z0 L1 h" ], Y" c; `
  End If
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 21:21 , Processed in 0.221539 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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