读书人

FileCopy 函数的拒绝权限是如何了

发布时间: 2012-02-07 17:45:36 作者: rapoo

FileCopy 函数的拒绝权限是怎么了?
FileCopy 函数的拒绝权限是怎么了?

[解决办法]
http://topic.csdn.net/t/20030829/16/2203194.html


用的是CopyFile函数,跟你用的函数刚好倒了个个,这是一个API函数,所以要先声明:
Public Declare Function CopyFile Lib "kernel32 " Alias "CopyFileA " (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

以下是用来备份和恢复的代码,在access打开的情况下可以进行:
'备份数据
Public Function BackupMDB() As Boolean
On Error GoTo ErrLab
BackupMDB = False

Screen.MousePointer = 11

If CopyFile(MdbSourcePath, MdbBackupPath, False) = 0 Then
Screen.MousePointer = 0
MsgBox "备份失败! " & vbCrLf & "请确保其它应用程序没有使用当前数据库! " & vbCrLf & "然后关闭其它所有子窗体后再备份! ", vbInformation, "提示 "
Else
Screen.MousePointer = 0
BackupMDB = True
MsgBox "备份成功! ", vbInformation, "祝贺 "
End If
Exit Function
ErrLab:
Screen.MousePointer = 0
MsgBox "发生意外错误!请稍后再试 " & vbCrLf & Err.Description, vbInformation + vbOKOnly, "消息 "
End Function

'恢复数据库
Public Function RestoreMDB() As Boolean
On Error Resume Next
Dim tempCon As ADODB.Connection
Dim tempRs As ADODB.Recordset
RestoreMDB = True

If MsgBox( "该操作把当前数据库替换为之前备份过的数据库。执行之后将不可撤消! " & vbCrLf & "您确定要恢复当前数据库吗? ", vbQuestion + vbOKCancel + vbDefaultButton2, "小心! ") = vbCancel Then
Exit Function
End If

Set tempCon = New ADODB.Connection
Set tempRs = New ADODB.Recordset

tempCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & MdbBackupPath & ";jet oledb:database password=790319 "
tempRs.Open "Select * from Document ", tempCon, adOpenStatic, adLockOptimistic
If Err.Number <> 0 Then
MsgBox "以前尚未备份过,或者已经备份的数据库已被破坏,不能进行恢复! ", vbInformation, "提示信息 "
Else
'关闭连接
tempRs.Close
tempCon.Close
Set tempCon = Nothing

con.Close '先关闭全局连接

If CopyFile(MdbBackupPath, MdbSourcePath, False) = 0 Then
MsgBox "请确保其它应用程序没有使用当前数据库! " & vbCrLf & vbCrLf & _
"然后关闭其它所有子窗体后再恢复! ", vbInformation, "恢复失败 "
Else
MsgBox "恢复成功! ", vbInformation, "祝贺 "
End If

ConnectDatabase con '再开启全局连接
End If
End Function

MdbSourcePath和MdbBackupPath是偶定义的路径,你可以改成你需要的路径。这些代码偶是放在一个类模块里面的。

读书人网 >VB

热点推荐