我有一个报告,表示从单独数据库导出的表进行更新。我有一个计时器的报告,每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
答案 0 :(得分:0)
我制作了一个过滤查询的表单并尝试制作报告。我得到了同样的错误,说无法通过数据库引擎锁定表。
我所做的只是在desighn视图中转到报告并将Record Locks更改为No Locks。它奏效了。