送分:我想实现数据库的不定期备份,加了一个meCopyMDB函数,为什么执行时提示:拒绝的权限?

lpzwm 2004-09-21 09:04:51
谢谢!在线等
...全文
151 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hwcqboy 2004-09-22
应该是你的程序中有打开连接
回复
huitiansou 2004-09-22
上面都没有说到点子上。

运用FileCopy函数需要系统的最高权限
例如:在Windows2000上运行需要Administrator级权限
回复
yinweihong 2004-09-21
用shell copy吧
回复
lfshf 2004-09-21
肯定有打开了,可以先执行下列程序,然后就可以用filecopy了,这是DAO的,你可能要修改一下

Public Sub CloseDBConnect()
' 关闭数据库对象并且释放内存
On Error Resume Next

Dim WS As Workspace
Dim DB As Database
Dim rs As Recordset

For Each WS In Workspaces
For Each DB In WS.Databases
For Each rs In DB.Recordsets
rs.Close
Set rs = Nothing
Next
DB.Close
Set DB = Nothing
Next
WS.Close
Set WS = Nothing
Next
End Sub

回复
lpzwm 2004-09-21
我的ACCESS并没有打开呀
回复
RUKYO 2004-09-21
不是这个意思,我是指你在备份前,先手动把ACCESS关闭掉,并非叫你关闭程序中引用的ADO对象。
回复
lpzwm 2004-09-21
我在程序中没有打开数据库呀,利用FileCopy来备份的
回复
lpzwm 2004-09-21
应该在什么地方关闭?如何关闭?
回复
RUKYO 2004-09-21
在备份时候关闭掉要备份的MDB文件。
回复
lpzwm 2004-09-21
Public Sub meCopyMDB()
Static bCopied As Boolean
Static dCopyDate As Date
Dim Source As String
Dim destination As String
Dim strMsg As String
On Error GoTo errCopyMDB
If dCopyDate = Date Then
bCopied = True
Else
bCopied = False
End If
If bCopied Then
MsgBox "今天已经备份过数据库文件了!", vbInformation, "数据备份"
Exit Sub
End If
Source = "mdb\db1.mdb"
destination = "数据库备份\dat1.mdb"
strMsg = "源数据库文件是: " & Source & Chr(13) & Chr(10) _
& "备份数据库文件是:" & destination & Chr(13) & Chr(10) _
& Chr(13) _
& "要备份吗?"


If MsgBox(strMsg, vbYesNo + vbQuestion, "数据备份") = vbNo Then Exit Sub

If Dir(Source) = "" Then '--------------------------------------------- 1.
strMsg = "数据库文件: " & Source & " 丢失.备份失败!" & Chr(13) & Chr(10) _
& "请通知有关人员恢复此文件!"
MsgBox strMsg, vbExclamation, "备份失败!"
Else
If Dir("数据库备份\", vbDirectory) = "" Then '--- 2.
MkDir ("数据库备份\")
MsgBox "在C:盘安装目录建立了一个备份文件夹:数据库备份\", vbInformation, "数据备份"
End If

FileCopy Source, destination
bCopied = True
dCopyDate = Date

MsgBox "备份结束.", vbInformation, "数据备份"

End If '------------------------------------------------------------ 1.
Exit Sub
errCopyMDB:
Call meErr("meCopyMDB")
End Sub
代码应该没问题,有时候也能备份上,有时不可以
回复
RUKYO 2004-09-21
使用FILECOPY,发生“实时错误:70,被拒绝的权限”



编号:QA000525
建立日期: 1999年2月13日 最后修改日期:1999年2月13日
所属类别:

Visual Basic - 数据库
Visual Basic - 错误信息
Visual Basic - 磁盘、文件和目录

mj:
我有一个问题想请教,就是我在程序中想备份ACCESS数据库文件,使用FILECOPY,但程序总是显示“实时错误:70,被拒绝的权限”,不知为何?还望指教。

回答:

估计你在复制文件的时候,你的数据库被打开了。如果数据库被打开(除非你的数据库是以只读方式打开的),读文件操作会被禁止,所以无法拷贝文件。解决的办法就是暂时关闭数据库(包括数据控件)。

此问题由李海回答。
回复
RUKYO 2004-09-21
Access备份代码这里有很多,搜一下就大把了。这是FAQ的:
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=195584
回复
RUKYO 2004-09-21
你的备份MDB函数代码是怎样的呢?能详细些吗?
回复
发帖

1188

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2004-09-21 09:04
社区公告
暂无公告