访问仪表板以获取实时Excel文件

时间:2014-02-21 22:15:45

标签: excel ms-access-2007

我正在Access中创建一个仪表板,用于监视我们用于数据输入的Excel电子表格。重要的是我们要避免锁定电子表格,因此我一直在使用在计时器上运行的已保存数据导入。代码在第一次运行时完美运行。在第二次刷新时,列表框返回空白,表的数据将被删除。

我的猜测是列表框正在锁定表,所以我尝试了DAO.Recordset,但我遇到了同样的问题。

如何继续获取此计时器的更新?

Private Sub Form_Timer()

DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE test.* FROM TEST"
DoCmd.RunSavedImportExport "DWOR"
DoCmd.SetWarnings True

Dim db As Database
Set db = CurrentDb()
Dim rs As DAO.Recordset
Set rs = db.OpenRecordset("TEST", dbOpenDynaset)
If rs.RecordCount > 0 Then
    Set watcher.Recordset = rs
End If
'rs.Close
'Me.watcher.RowSource = db.OpenRecordset("Test")
'watcher.RowSource = "SELECT [test].[#], [test].[Line Set], [test].[Model], [test].[Chassis Def], [test].[Chassis Short], [test].[Cab-L], [test].[Cab-C MRU/LEU], [test].[Cab Short], [test].[Paint Qual], [test].[Paint Damage], [test].[Paint Short], [test].[MTR Rm], [test].[ENG], [test].[Westport], [test].[Vendor], [test].[Hood], [test].[Sleeper], [test].[Sub-Assem], [test].[OFFLINE] FROM test ORDER BY [#]; "
watcher.Requery

End Sub

编辑: 我将事件移动到一个按钮,列表框和表格字段都显示为#Deleted。

1 个答案:

答案 0 :(得分:0)

您可以将Excel文件设置为链接表,而不是将数据导入永久表吗?这不会导致Excel文件中的锁定。然后,当你需要刷新时,你就可以运行这样的东西

Dim tdf As TableDef
Dim db As Database
Set db = CurrentDb

Set tdf = db.TableDefs("your linked table name")

tdf.RefreshLink

当基础表更新时,表单上的数据将自动更新。