Microsoft Access DoCmd.TransferText дополнительная колонка - PullRequest
3 голосов
/ 04 сентября 2011

Я использую DoCmd.TransferText для импорта данных из файла .cvs. Мне нужно добавить еще один столбец с текущей датой для импортируемой информации. Есть ли простой способ сделать это?

Ответы [ 3 ]

3 голосов
/ 05 сентября 2011

Есть несколько подходов, которые вы можете использовать:

-Парсировать файл и создавать операторы INSERT через VBA вместо использования TransferText.

-Если таблица уже существует, вы добавляете данные в существующую таблицу, и у вас есть поле идентификатора автоматического номера или какой-либо другой способ отличить новые данные от старых, после чего вы можете добавить текущую дату после импорта через оператор UPDATE:

Dim latestID As Long

latestID = DMax("yourIDField", "yourTable")
DoCmd.TransferText acImportDelim, , "yourTable", "c:\import.csv", True

DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE yourTable SET importedDate = #" & Date & "# WHERE yourIDField > " & latestID
DoCmd.SetWarnings True

-Если при каждом импорте создается новая таблица, вы можете использовать инструкцию ALTER, чтобы добавить столбец, а затем ОБНОВИТЬ для ввода текущей даты:

DoCmd.TransferText acImportDelim, , "yourTable", "c:\import.csv"

DoCmd.SetWarnings False

DoCmd.RunSQL "ALTER TABLE yourTable ADD COLUMN importDate DATE"
DoCmd.RunSQL "UPDATE yourTable SET importDate = #" & Date & "#"

DoCmd.SetWarnings True
1 голос
/ 08 февраля 2015

Вы можете использовать schema.ini вместо метода передачи текста.

Проверьте следующий блог, в котором описывается больше о schema.ini. https://officeaccelerators.wordpress.com/2015/02/08/exporting-text-file-from-access/

Set cn = CreateObject("ADODB.Connection")
Set cn = CurrentProject.Connection
sSQL = "insert into TanleName(Field1,Field2,Date) select tab1.Field1,tab1.Field2,date() from "
sSQL = sSQL & "[text;database=FilePath\;HDR=Yes].[Test.csv] as Tab1"
cn.Execute sSQL
0 голосов
/ 05 сентября 2011

Другой способ - создать связанную таблицу для файла .csv (выберите правильный тип файла во всплывающей форме диалогового окна «Открыть» при создании новой связанной таблицы) и создать запрос на добавление с дополнительным полем, содержащим Date() или Now() как значение по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...