импорт с Excel в Access

e.zelenyj
Дата: 08.02.2016 10:11:27
Доброго времени суток!
Прошу помочь с макросом. Задача следующая.
Необходимо загружать данные с Excel в Access с помощью VBA.
В документе Excel - продажи с начала месяца по вчера. Каждый день файл с данными обновляется, но изменения могут быть не только в том, что добавились продажи по следующему дню. Возможен вариант изменения даты или кол-ва продажи за предыдущий день.

В таблице Access данные сохраняются накопительно (декабрь+январь+несколько дней февраля). Необходимо прописать код на загрузку данных с условием обновления всех записей за период - этот и прошлый месяц.

Дальше файл должен быть перемещен и заархивирован.

То, что есть на сейчас:

Function DoImportFirstSales()

Dim strPathFile As String, strFile As String, strPath As String, sFileName As String, sNewFileName As String
 Dim strTable As String
 Dim blnHasFieldNames As Boolean

 blnHasFieldNames = True

 strPath = "\\WF-01\WorkFolders$\e.zelenyj@NSUA\Report\MyReport\Fact\First\"


 strTable = "ФактПервичка"

 strFile = Dir(strPath & "*.xlsx")
 
 Do While Len(strFile) > 0
       strPathFile = strPath & strFile
       DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
             strTable, strPathFile, blnHasFieldNames
             
    strFile = Dir()

 Loop
 
End Function



Буду очень благодарен за помощь.

P.S. Код взят с форума.
Анатолий ( Киев )
Дата: 08.02.2016 18:01:34
Для начала вопрос - есть ли в таблице столбец с уникальными значениями (идентификатор записи)? Если есть, и в файле строки не удаляются, то запрос на обновление и запрос на добавление новых.
Если нет, то запрос на удаление записей с начала месяца и запрос на добавление.
В любом случае, если путь к свежему файлу всегда один и тот же, то есть смысл его присоединить как таблицу и работать с ней.
e.zelenyj
В документе Excel - продажи с начала месяца по вчера.
...
Необходимо прописать код на загрузку данных с условием обновления всех записей за период - этот и прошлый месяц. Где вы возьмете данные за прошлый месяц?