Member 12085428 Ответов: 1

Чтение txt-файла в ms access и создание связанных таблиц


Всем привет
В папке у меня есть несколько txt-файлов. Каждый txt-файл относится к месяцу цифровой налоговой бухгалтерии данной компании. Каждая строка, начинающаяся с | C100/, соответствует общим данным счета-фактуры, в то время как строки непосредственно ниже, начинающиеся с | C170|, соответствуют продуктам их счета-фактуры. См. пример ниже для иллюстрации. Обратите внимание, что между строками C100 и c170 нет "поля" с общими данными, так что нет явной связи между строкой C100 и строками C170 непосредственно ниже.

|C100|0|1|1369F|01|00|1|2935||01022013|01022013|1170,4|1|0|0|1170,4|9|0|0|0|1170,4|198,96|0|0|0|0|0|0|0|
|C170|1|000072|LEITE FERM YAKULT 80G|1020|UN|714|0|0|000|1102||714|17|121,37|0|0|0|...
|C170|2|033075|QUEIJO POLENGUINHO TRAD 20G|10|CX24|150|0|0|000|1102||150|17|25,5|0|0|0|0||...
|C190|000|1102|17|1170,4|1170,4|198,96|0|0|0|0||
|C100|0|1|6990F|55|00|1|35384|20241210557528000274661010000464952334671545|23012013|01022013|63,12|2|...
|C170|1|033044|BEB VODKA ICE SMIR LT 269 CRANB LIMAO|24|UN|63,12|0|0|060|1910||0|0|0|0|0|0|0||...
|C190|060|1910|0|63,12|0|0|0|0|0|0||

Цель
Создайте базу данных Access, содержащую две таблицы: таблицу tabC100, заполненную C100 введите записи и таблицу "tabC170", заполненную C170 введите записи, включающие все ежемесячные txt-файлы. Таблицы должны иметь связь, связывающую друг друга. Это поле может быть целочисленным.

Вопросы
1. С точки зрения производительности, я должен добавить все ежемесячные txt файлы в один большой текстовый файл, а затем импорт данных из большого txt-файла в таблицы или я должен импортировать через петлю каждого ежемесячного txt файлы напрямую в таблицы БД?
2. чтобы создать связь между двумя таблицами, я должен работать с большим текстовым файлом, написав длинный X на строке C100 и написание того же самого длинного X в C170 линии непосредственно под C100 линия или есть другой лучший способ (с лучшей производительностью)?
3. Знаете ли вы коды, связанные с этими вопросами? Если да, то дайте мне способ получить к ним доступ (темы или ссылки)?

Я пытался:
Читать: откройте инструкцию на VBA в строке ввода.
Чтобы создать связанные таблицы: добавьте длинное целое число в C100 строка и то же целое число в C170 строчки сразу внизу.

Я ценю любую помощь.
Заранее спасибо.

Maciej Los

Вам нужно импортировать строку, которая начинается с `C190`?

1 Ответов

Рейтинг:
1

Richard MacCutchan

1. Вероятно, было бы лучше импортировать каждый ежемесячный текстовый файл отдельно. Таким образом, если вы столкнетесь с проблемой с одним файлом, вы все равно введете все остальные данные.
2. Есть ли уникальный предмет в С100 записи, которое идентифицирует счет? Если это так, то было бы лучше использовать это как отношение (первичный ключ). В противном случае используйте некоторый код для генерации уникального идентификатора, возможно, на основе года и месяца файла, а также последовательности счетов-фактур.
3. поскольку это новая система, маловероятно, что вы найдете какой-либо код, который будет выполнять эту работу. Вам нужно будет приступить к созданию дизайна, основанного на ваших требованиях и входных данных. Как минимум вам нужно будет:
3.1. чтение файла строка за строкой
3.2. разделите строку на поля
3.3. сгенерируйте номер счета-фактуры для строки C100
3.4. добавьте данные C100 в таблицу C100
3.5. прочитайте каждую строку C170
3.6. разбейте строку на поля
3.7. добавьте данные C170 и номер счета-фактуры в таблицу C170

и т.д.

Сможете ли вы сделать это в VBA-решать вам, основываясь на ваших знаниях и опыте.