Проблемы импорта VBA TransferSpreadsheet - PullRequest
0 голосов
/ 31 мая 2018

У меня есть шаблон 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 и полями таблиц.

Я не могу определить, из-за чего значение времени окончания не импортируется.Я не вижу таблицы ошибок импорта, и, как правило, если импорт завершается неудачно, то в таблице отсутствует вся запись, а не только одно значение в таблице.

Просто несколько других ключевых моментов: Значение, котороевсегда отсутствует "конечное время", которое является отметкой времени, когда была нажата кнопка отправки.Когда я иду на лист, я вижу дату и время окончания в ячейке.Кроме того, некоторые пользователи запускают шаблон в одном экземпляре Excel, но открывают другой экземпляр, чтобы они могли просматривать другие файлы / справочные материалы.Я начинаю задаваться вопросом, может ли несколько экземпляров вызвать преждевременное завершение импорта.Мне также интересно, если задержка с сетевым диском может вызвать эту проблему.Так как эта ошибка происходит периодически, я озадачен тем, какой сценарий вызывает это.Буду признателен за любые отзывы или предложения о том, как исправить эту проблему.

...