Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Импорт из txt в таблицу MS Access VBA

Александр Темяков Знаток (262), закрыт 8 лет назад
Доброго времени суток!
Мне необходимо на VBA импортировать данные из текстовика. Причем набор полей, которые мне нужны, строго определен (f1, f2, f3, f4), а txt может содержать f1, f2, f3, ..fn.
Полей может быть разное количество, всех имен я не знаю и у меня нет максимального текстового файла, чтобы создать спецификацию импорта и исключить ненужные поля.
Я думал, может импортировать все, а потом удалить ненужные столбцы, но пока ничего не придумал (( Помогите!
Лучший ответ
Άηϑρέΰ ҂ Искусственный Интеллект (179800) 8 лет назад
такого не бывает.. это касается только xml. в любом случае нужно иметь начало (конкретный файл) что бы организовать импорт
Александр ТемяковЗнаток (262) 8 лет назад
Файл у меня есть, но это не единственная из его модификаций. Суть в том, что txt генерирует программа, которая у каждого сотрудника на экспорт настроена по разному (может в этот файл напихать более 20 полей). Мне же для работы БД нужно всего 7 полей, имена которых я четко знаю.
Άηϑρέΰ ҂ Искусственный Интеллект (179800) как бы количество полей не принципиально. если вы можете их правильно извлечь. можете определить количество полей, создать временную таблицу, забить ее данными и взять то, что нужно
Остальные ответы
Виктор Адаменя Искусственный Интеллект (134524) 8 лет назад
Придумай детерминатор разделитель записей в файле например 0 или CR LF стандартные. Можно конешно промежуточный файл сделать. Можно файл хранить в базе данных это медленно и гемморно но тогад можно SQL запрос сделать. И там кстати microsoft jet есть ссылка DAO 3.51 раньше было там еще доступ можно на уровне отдельных полей и методы movenext movefirst и прочие. То есть можно еще и на уровне драйвера базы данных любой метод вплоть до синхронизации или транзакций.
Виктор АдаменяИскусственный Интеллект (134524) 8 лет назад
Можно самому придумать заголовок в файле чтобы он описывал его структуру. особо импортировать файл не нужно достаточноего открыть в качестве разделетилей полей табуляция . 1 сформулировать файл записей 2открыть файл для произвльной записи из него читать и сохранять байты пока не встретиться пятая табуляция потом пропускать все символы до признака конца записи допуситим это будет перевод каретки и вставка новой строки или один только. Потом читать следующую строку и делать тоже самое пока не встретиться признак конца файла
Виктор АдаменяИскусственный Интеллект (134524) 8 лет назад
Не возможно описать толком слишком короткий формат ответа задолбался переписывать тут действительно по делу писал воду не лил хвала модерам аминь.
Виктор АдаменяИскусственный Интеллект (134524) 8 лет назад
Забыл возможно 0 детерминатор конца файла EOF
Александр ТемяковЗнаток (262) 8 лет назад
Разделитель известен - tab. Порядок полей может быть произвольным, поэтому считать табы не прокатит. Единственное, что железно, так это имена полей. Вот мне б их по именам и вычислить...
Но как это сделать через DoCmd.TransferText, или еще какими-то средствами VBA, я ума не приложу.
Виктор Адаменя Искусственный Интеллект (134524) Имена полей произвольны тогда где то они храняться? Может в самом заголовке файла? Я VBA не учил но файлы в Visual Basic ведь также открываться? Open FileName for Output as #1 Короче если открыть файл для пртзвольного доступа можно читать любой байт по любому адресу а зная структру файла вы вполне можете его читать.
Aлeкceй Мыслитель (8287) 8 лет назад
Могу написать в Delphi.
Александр ТемяковЗнаток (262) 8 лет назад
делфи мне, к сожалению, не поможет ((
Похожие вопросы