“数据库无法锁定表”尝试关闭报表时出错,终止与报表绑定的当前表

时间:2013-11-26 18:58:01

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

我有一个报告,表示从单独数据库导出的表进行更新。我有一个计时器的报告,每5分钟重新查询一次。我尝试执行的过程是关闭报告,杀死生成报告的查询后面的表,将更新的文件导入到刚刚被杀死的表中,然后重新执行查询和报告。我一直得到运行时错误'3211':“数据库无法锁定表”。

代码如下,非常感谢这位新手的任何帮助。

Private Sub Report_Timer()

'Close Report
DoCmd.Close acReport, "SMT Progress Report"

'Kill existing tables
Set dbs = CurrentDb
dbs.TableDefs.Delete ("SMT2Updated") ' error here
dbs.TableDefs.Delete ("SMT3Updated")
dbs.TableDefs.Delete ("SMT4Updated")
dbs.TableDefs.Delete ("SMT5Updated")
Set dbs = Nothing

'Import Files to Tables
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "SMT2Updated", "\\ct13nt003\mfg\SMT_Schedule_Files\SMT Line Progress Files\SMT2Updated.xlsx", True
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "SMT3Updated", "\\ct13nt003\mfg\SMT_Schedule_Files\SMT Line Progress Files\SMT3Updated.xlsx", True
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "SMT4Updated", "\\ct13nt003\mfg\SMT_Schedule_Files\SMT Line Progress Files\SMT4Updated.xlsx", True
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "SMT5Updated", "\\ct13nt003\mfg\SMT_Schedule_Files\SMT Line Progress Files\SMT5Updated.xlsx", True

'Refresh and Open Query/Report
Me.Requery
DoCmd.OpenReport "SMT Progress Report", acViewReport

'Export status file
DoCmd.OutputTo acOutputReport, "SMT Progress Report Export Only", acFormatPDF, "\\ct13nt003\MFG\SMT Live Report\SMTLive" & "_" & Format(Now(), "mmddyyyy-hhmm") & ".pdf", False

End Sub

1 个答案:

答案 0 :(得分:0)

我制作了一个过滤查询的表单并尝试制作报告。我得到了同样的错误,说无法通过数据库引擎锁定表。

我所做的只是在desighn视图中转到报告并将Record Locks更改为No Locks。它奏效了。