删除表

时间:2018-01-17 00:44:37

标签: vba ms-access access-vba ms-access-2007

在MS Access 2007中,我导入了一些CSV文件。这些导入确实会创建导入错误,因为某些字段具有无法存储在备注字段中的大量文本。对于这些错误,MS Access会为其导入的每个文件创建包含导入错误的新表。我创建了一个删除导入错误表的子,一般来说,它工作正常。不太好的是,在代码运行后,我不再是数据库的管理员,我首先需要关闭数据库,然后才能继续对数据库进行进一步的开发。

Sub DelteTbls() 

On Error GoTo DelteTbls_Error

    Dim db As DAO.Database
    Dim tdf As DAO.TableDef

    Set db = CurrentDb() 'Set the database object

    'Clean the import error tables.
    For Each tdf In db.TableDefs
        If (tdf.Name Like "*" & "import" & "*") Then
            DoCmd.DeleteObject acTable, tdf.Name
        End If
    Next

    On Error GoTo 0

SmoothExit_DelteTbls:
    Set db = Nothing
    DoCmd.SetWarnings True
    Exit Sub

DelteTbls_Error:
    MsgBox "Error" & Err.Number & " (" & Err.Description & ") in procedure DelteTbls"
    Resume SmoothExit_DelteTbls

End Sub

此代码运行后我收到的消息是

  

Microsoft Access无法保存设计更改或保存到新数据库对象,因为另一个用户打开了该文件。要保存设计更改或保存到新对象,您必须具有对文件的独占访问权。

这很奇怪,因为我是数据库的唯一用户而没有其他人登录。我做错了什么?

0 个答案:

没有答案