我有一个excel模板,约有12人用来完成日常工作。完成后,有一个"提交"按钮,使用3个隐藏的工作表将一系列单元格传输到该用户的特定数据库中。
我使用DoCmd.TransferSpreadsheet Ac Import将单元格范围导入到该特定用户的数据库(存储在网络驱动器上),使用以下代码:
Dim acc As New Access.Application
Dim AnalystDB As String
AnalystDB = Worksheets("Quality Form").Range("I4").Value
acc.OpenCurrentDatabase "Z:\Production\Daily_Work\" & AnalystDB & ".accdb"
acc.DoCmd.TransferSpreadsheet _
TransferType:=acImport, _
SpreadSheetType:=acSpreadsheetTypeExcel12Xml, _
TableName:="tblSummary", _
Filename:=Application.ActiveWorkbook.FullName, _
HasFieldNames:=True, _
Range:="tblSummary$A:O"
acc.DoCmd.TransferSpreadsheet _
TransferType:=acImport, _
SpreadSheetType:=acSpreadsheetTypeExcel12Xml, _
TableName:="tblAccount", _
Filename:=Application.ActiveWorkbook.FullName, _
HasFieldNames:=True, _
Range:="tblAccounts$A:D"
acc.DoCmd.TransferSpreadsheet _
TransferType:=acImport, _
SpreadSheetType:=acSpreadsheetTypeExcel12Xml, _
TableName:="tblErrors", _
Filename:=Application.ActiveWorkbook.FullName, _
HasFieldNames:=True, _
Range:="tblErrors$C:I"
acc.CloseCurrentDatabase
acc.Quit
Set acc = Nothing
我的问题是每天我都可以看到约。 30多个正确的提交记录,但总共3-5个缺少结束时间值。
例如,我将看到如下记录:
|---------------------|------------------|------------------|
| ID | STARTTIME | ENDTIME |
|---------------------|------------------|------------------|
| 15978458 | 5/30/18 10:15 AM | |
|---------------------|------------------|------------------|
每个数据库文件/表都是彼此的精确副本,我非常彻底地匹配excel工作表和表字段之间的所有数据类型/格式。
我无法确定导致结束时间值不导入的原因。我没有看到任何导入错误的表,通常如果导入不成功则缺少整个记录,而不是表中的1个值。
其他几个关键点:始终缺少的值是" endtime"这是单击提交按钮时的时间戳。当我转到工作表时,我可以在单元格中看到结束日期/时间。此外,一些用户在一个excel实例中运行模板,但打开另一个实例,以便他们可以查看其他文件/参考资料。我开始怀疑多个实例是否会导致导入过早地以某种方式结束。我还想知道网络驱动器的延迟是否会导致此问题。由于这个错误是间歇性地发生的,我对于导致这种情况的情况感到困惑。如果您有任何关于如何解决此问题的反馈或建议,我将不胜感激。