就是下面的这一句:If SDbfRS.State = adStateOpen Then SDbfRS.Close: Set SDbfRS = Nothing
If SDbfConn.State = adStateOpen Then SDbfConn.Close: Set SDbfConn = NothingFS.DeleteFolder App.Path & "\TempZyml", True
目录下是程序临时用很多个DBF自由表的文件夹 在XP上能执行上面的代码,可是一到了2000上就提示拒绝的权限, 查看路径下有的DBF 自由表不能打开 ,也不能删除。
请大家帮帮忙了谢谢!
If SDbfConn.State = adStateOpen Then SDbfConn.Close: Set SDbfConn = NothingFS.DeleteFolder App.Path & "\TempZyml", True
目录下是程序临时用很多个DBF自由表的文件夹 在XP上能执行上面的代码,可是一到了2000上就提示拒绝的权限, 查看路径下有的DBF 自由表不能打开 ,也不能删除。
请大家帮帮忙了谢谢!
解决方案 »
- VB中两个Adodc可以相互赋值吗?
- 请教解决方法:vb读取某种含中文的文件出现乱码
- 新手问题,可不可以在一次打数据集里,执行两条不同的查询语句啊
- 初学vb提问题
- 如何在treeview控件中使用右键鼠标?
- IsNumeric("1E1")=True 還是 False?
- 文件路径的关联 (新手的问题)
- 如何屏蔽掉对指定网址的访问?当该网址的页面出现时,立刻关掉。类似保护儿童上黄色网站的功能。在线等候~~~~~~~~~~~~~~~~!
- 请问如何用vb实现找颜色,并且移动鼠标到该颜色处啊?
- ※※※ 今晚在线的别错过了此贴 ※※※
- 四个角角了,散点分-贴中提到的网友来领分(没提的也可,大家不要说倒分啊。UP无分)之三
- 请教关于data控件的问题
而被Open的那两个DBF自由表没有被删除,估计是不是关闭连接没有成功的原因呢?但我的代码又确实将他们都关闭了的呀?!可是同样的代码,在XP上没有问题,在2000上却有问题,确实搞不懂了.大家救命啊?!
如果不能,那肯定还是权限或文件打开的问题,
如果能,那不如你在程序中关闭连接或dbf后,等几秒后再执行删除代码
timer控件的间隔时间设置为3秒,然后它的事件中就是删除代码。删除后再将自己废弃 timer1.enabled=false
Set SDbfRS = Nothing
SDbfConn.Close
Set SDbfConn = Nothing
当然,我这里没有XP,所以不能保证以上方法有效。
conn.Open "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=""DSN=Visual FoxPro Database;UID=;SourceDB=" & szTempPath & ";SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"""
工作代码 ..... conn.Close
Set conn = Nothing
On Error Resume Next
Kill szTempPath + "*.*" '这里从没出过错,都能删除
RmDir szTempPath
On Error GoTo 0
马上设置了RS。CLOSE SET RS=NOTHING
SDBFCONN。CLOSE SET RS=NOTHIN
这些应该释放了正在使用的表的啦?
在2000中还是不行。
请你帮我看看好不好?!
错误的语句可以在一段时间(小于1分钟)后被正常执行,看来是调用数据库表文件的处理进程有点延迟,造成你执行删除目录时数据表的处理进程还没有结束,而且是访问那个目录的三个包含“项目”名字的文件,其他两个可以立刻删除。因为你使用的访问方式比较特殊,所以只有你自己才能解决。