Страница 1 из 1

макрос access: из txt в access

Добавлено: 21 июн 2010, 17:03
Kokain
Всем привет,
подскажите, пожалуйста, в какую сторону копать.

Есть access таблица. данные для нее лежат в txt файликах (tab delemited), которых около 1000.
Мне надо загрузить их все туда ну и создать тул по быстрой загрузке последующих файлов.

Я укажу директорию, сделаю dir, получу список файлов к загрузке (по маске).
Вот тут проблема: заголовки полей в файлах содержаться во второй строке, а в первой строке - описание файла стандартизованное. Как мне:
1. проверить, что первая строка действительно описание?
2. Как пропустить первую строку и загружать дальше с учетом заголовков?
3. взять кусок из первой строки и запихнуть значение в переменную (это дата)?

Подскажите ключевые слова я дальше разберусь.
Спасибо заранее,

Re: макрос access: из txt в access

Добавлено: 23 июн 2010, 13:16
somewhere
Имхо, без макросов эти задачи в Access нерешаемы. Здесь нужно как минимум писать макрос для импорта данных из этой группы файлов в таблицу - это будет самый простой и надежный вариант. Тогда ответы будут выглядеть таким образом:
1. Прочитать первую строку, посчитать сколько в ней символов табуляции - если меньше, чем колонок в таблице - то значит это описание. Иначе передать строку на добавление данных.
2. После выполнения (1) строка с описанием игнорируется
3. Распарсить строку исходя из ее формата. Например если она имеет вид "Дата файла: 14.05.10" удобнее найти символ ":" и все, что после него без пробелов передать в переменную.

Re: макрос access: из txt в access

Добавлено: 23 июн 2010, 15:27
Kokain
Приветствую.
Я тоже считаю что это может сделать только макрос. Да, примерно так я и делаю. Уже накидал шапку макроса.

Сейчас стоит вопрос как используя DoCmd.TransferText загружать текстовый файл в access. Проблема в следующем:
в первой строчке файла содержится описания файла, во второй заголовки, с 3й пошли данные. А DoCmd.TransferText может загружать либо с 1 строчки либо со второй. то есть видимо мне придется удалять строку с описанием а как это сделать не знаю.