我对一张表进行处理。处理完后,要把这张表给删除掉。为什么我用kill("c:\temp.dbf")这句话,在我家机器上可以运行,但是在公司的机器上就不可以运行呢?告诉我拒绝访问。我就奇怪了,为什么在我家的机器上就没有这个问题呢?我的RST和CONN都关了啊!真是郁闷啊!

解决方案 »

  1.   

    我连API(DeleteFile)都用到了。还是同样的问题。请大家帮帮忙!万分感谢!
      

  2.   

    fso As New FileSystemObjectfso.DeleteFile "c:\temp.dbf",true试试这个,不管文件属性如何,一概kill
      

  3.   

    公司的机器C:是什么文件系统?是否ntfs?有权限吗?
      

  4.   

    手动可以删,而且如果你把删除这句话,复制到“立即”窗口中来运行的话,也能运行,就是在程序中不能运行。说拒绝访问。C:FAT32的。没有权限限制。重起过N次了。还是这样。
      

  5.   

    系统是刚装的。WIN2K + SP4   (一开始是SP3,运行还是出错,所以后来装了SP4)VB6+SP5 英文版
      

  6.   

    一样啊!完全一样。只是配置不一样。可以运行的那台机器是C333的笔记本。
    而不能运行的那太机器是P4 1.5G的。真是郁闷啊!请大家帮帮我!
      

  7.   

    kill 这句话本身没有问题,可能在执行该语句时其他什么地方已打开该文件。
    建议在该语句设一个断点,然后运行至该语句前,用手工删一下。
      

  8.   

    会不会是文件路径有问题啊?
    一般把这样的数据库文件和工程文件都放在一个工程文件夹里,然后路径就是
    “app.path & temp.dbf”
      

  9.   

    这样吧,我把程序帖出来给大家看看!如果发现了问题,请提醒小弟弟我!以下是将要删除的表的信息显示在DATAGRID里面的。    On Error Resume Next
        
        Dim Conn As New ADODB.Connection
        Dim Rst As New ADODB.Recordset
        Dim StrConn As String
        Dim SQLConn As String
        
        ShowSearchResult.Visible = True   'SHOWSEARCHRESULT就是一个DATAGRID
        StrConn = "Provider=MSDASQL.1;Driver=Microsoft Visual Foxpro Driver;SourceDB=" & TempDBFPath & ";SourceType=DBF"
        SQLConn = "Select * from temp"
        Conn.CursorLocation = adUseClient
        Conn.Open StrConn
        Rst.Open SQLConn, Conn, adOpenStatic, adLockOptimistic
        If Err.Number = -2147217865 Then
           GoTo ErrorHandle
        End If
        If Not Rst.EOF Then
            Set ShowSearchResult.DataSource = Rst
            ShowSearchResult.Refresh
            Dim i As Integer
            ReDim FieldName(Rst.Fields.Count)
        Else
            ShowSearchResult.Visible = False
        End If
    下面的程序是将这个数据表文件删除用的。
        If Rst.State = 1 Then
            Rst.Close
        End If
        If Conn.State = 1 Then
            Conn.Close
            Set Conn = Nothing
        End If
        If Dir(TempDBFPath + "\temp.dbf") <> "" Then
            Set ShowSearchResult.DataSource = Nothing
            DoEvents
            DeleteFile(Temp)  '这里是调用的API
        End If
        If Dir(TempDBFPath + "\temp2.dbf") <> "" Then
            Set ShowSearchResult.DataSource = Nothing
            DoEvents
            DeleteFile(Temp)  '这里是调用的API
        End If请大家帮帮我!谢谢!
      

  10.   

    刚才删除的那段写错了.
        If Rst.State = 1 Then
            Rst.Close
        End If
        If Conn.State = 1 Then
            Conn.Close
            Set Conn = Nothing
        End If
        If Dir(TempDBFPath + "\temp.dbf") <> "" Then
            Set ShowSearchResult.DataSource = Nothing
            DoEvents
            DeleteFile(TempDBFPath + "\temp.dbf")   '这里是调用的API
        End If
        If Dir(TempDBFPath + "\temp2.dbf") <> "" Then
            Set ShowSearchResult.DataSource = Nothing
            DoEvents
            DeleteFile(TempDBFPath + "\temp2.dbf")   '这里是调用的API
        End If