在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无法保存设计更改或保存到新数据库对象,因为另一个用户打开了该文件。要保存设计更改或保存到新对象,您必须具有对文件的独占访问权。
这很奇怪,因为我是数据库的唯一用户而没有其他人登录。我做错了什么?