Excel VBA电子表格导入问题

Excel VBA电子表格导入问题,excel,ms-access,vba,Excel,Ms Access,Vba,我有一个excel模板,大约12个人使用它来完成日常工作。完成后,会有一个“提交”按钮,使用3个隐藏工作表将一系列单元格传输到该用户的特定数据库中 我使用DoCmd.TransferSpreadsheet Ac导入将单元格范围导入该特定用户的数据库(存储在网络驱动器上),代码如下: Dim acc As New Access.Application Dim AnalystDB As String AnalystDB = Worksheets("Quality Form").Range("I4"

我有一个excel模板,大约12个人使用它来完成日常工作。完成后,会有一个“提交”按钮,使用3个隐藏工作表将一系列单元格传输到该用户的特定数据库中

我使用DoCmd.TransferSpreadsheet Ac导入将单元格范围导入该特定用户的数据库(存储在网络驱动器上),代码如下:

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工作表和表字段之间的所有数据类型/格式

我无法确定导致结束时间值不导入的原因。我没有看到任何导入错误的表,通常,如果导入失败,则整个记录将丢失,而不仅仅是表中的一个值


还有几个关键点:总是缺少的值是“endtime”,它是单击submit按钮时的时间戳。当我转到工作表时,我可以在单元格中看到结束日期/时间。此外,一些用户正在excel的一个实例中运行模板,但打开了另一个实例,以便查看其他文件/参考资料。我开始怀疑多个实例是否会导致导入过早结束。我还想知道网络驱动器的延迟是否会导致这个问题。由于这个错误是间歇性发生的,我不知道是什么情况导致了这个错误。如果您能就如何纠正此问题提供任何反馈或建议,我将不胜感激。

很可能是由于Excel和/或Access中的日期类型问题造成的。无论如何,请看以下内容:您可以在保存和关闭工作表之前尝试添加一些记录验证。填写时间戳字段的提交代码在哪里?转移前是否保存工作簿?感谢您提出保存主题。因此,当submit过程运行时,它会将所有内容传输到DB,然后将用户返回到工作簿,对文件进行一些更改,然后保存工作簿。也许在数据传输步骤之前添加一个save会有所帮助。