VBA TransferSpreadsheet导入问题

时间:2018-05-31 05:56:38

标签: excel-vba access-vba vba excel

我有一个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实例中运行模板,但打开另一个实例,以便他们可以查看其他文件/参考资料。我开始怀疑多个实例是否会导致导入过早地以某种方式结束。我还想知道网络驱动器的延迟是否会导致此问题。由于这个错误是间歇性地发生的,我对于导致这种情况的情况感到困惑。如果您有任何关于如何解决此问题的反馈或建议,我将不胜感激。

0 个答案:

没有答案