略有延迟地在报告关闭时删除 table
Delete a table on report close with slight delay
我想将我的数据库性能保持在最高水平,减少对象数量并临时创建内容。我有一个 table 应该从代码自动化:
有一份报告需要来自 table 的数据 -(工作正常),所以这是流程:
'-> form is opened -> onClick find-button
'-> table of dates is created -> table of dates is populated
'-> Report is opened -> onReportClose (I want the table of dates to be deleted).
代码已写好,它自己运行良好:
CurrentDb.TableDefs.Refresh
DoCmd.DeleteObject acTable, "temp-table"
所以我在靠近 运行 上述代码的报告上添加了一个宏:这是一个函数。但我收到以下错误:
Run-time error '3211': The database engine could not lock table
'temp-table' because it is already in use by another person or
process.
我相信这是因为报告可能正在使用它。所以我在我的代码中添加了十秒的延迟:
Dim PauseTime As Variant
Dim Start As Variant
Dim Elapsed As Variant
PauseTime = 10
Start = Timer
Elapsed = 0
Do While Timer < Start + PauseTime
Elapsed = Elapsed + 1
Loop
CurrentDb.TableDefs.Refresh
DoCmd.DeleteObject acTable, "temp-table"
相反,它似乎将整个数据库保存了 10 秒,但同样的问题仍然存在。欢迎任何 Ideas/suggestions 如何在报告关闭时删除此 table,或在 Ms-Access 中强制 table 删除(也许?)或如何解决此问题。
您必须清除 RecordSource 的 RecordSource,并且 运行 Unload 事件中的 Requery 方法。之后您可以删除数据 table.
Private Sub Report_Unload(Cancel As Integer)
'Desvinculo la tabla del reporte
Me.RecordSource = ""
Me.Requery
'Borro las tablas de datos
DoCmd.RunSQL "DROP TABLE name_of_table"
End Sub
我想将我的数据库性能保持在最高水平,减少对象数量并临时创建内容。我有一个 table 应该从代码自动化:
有一份报告需要来自 table 的数据 -(工作正常),所以这是流程:
'-> form is opened -> onClick find-button
'-> table of dates is created -> table of dates is populated
'-> Report is opened -> onReportClose (I want the table of dates to be deleted).
代码已写好,它自己运行良好:
CurrentDb.TableDefs.Refresh
DoCmd.DeleteObject acTable, "temp-table"
所以我在靠近 运行 上述代码的报告上添加了一个宏:这是一个函数。但我收到以下错误:
Run-time error '3211': The database engine could not lock table 'temp-table' because it is already in use by another person or process.
我相信这是因为报告可能正在使用它。所以我在我的代码中添加了十秒的延迟:
Dim PauseTime As Variant
Dim Start As Variant
Dim Elapsed As Variant
PauseTime = 10
Start = Timer
Elapsed = 0
Do While Timer < Start + PauseTime
Elapsed = Elapsed + 1
Loop
CurrentDb.TableDefs.Refresh
DoCmd.DeleteObject acTable, "temp-table"
相反,它似乎将整个数据库保存了 10 秒,但同样的问题仍然存在。欢迎任何 Ideas/suggestions 如何在报告关闭时删除此 table,或在 Ms-Access 中强制 table 删除(也许?)或如何解决此问题。
您必须清除 RecordSource 的 RecordSource,并且 运行 Unload 事件中的 Requery 方法。之后您可以删除数据 table.
Private Sub Report_Unload(Cancel As Integer)
'Desvinculo la tabla del reporte
Me.RecordSource = ""
Me.Requery
'Borro las tablas de datos
DoCmd.RunSQL "DROP TABLE name_of_table"
End Sub