|
|
|
DoCmd.TransferText: избавиться от ..._ОшибкиИмпорта
|
|||
|---|---|---|---|
|
#18+
По работе часто (считай каждый день) приходится заниматься импортом текстовых файлов, которые изначально предназначены были для печати и потому содержат еще всякие ненужные строки на каждом листе. Так вот при импорте (он конечно должен полностью автоматическим), когда поля в спецификации сразу задаются под нужный тип (например для столбца с суммой - числовой), то при имортировании "мусорных строк" конечно возникает ошибка при преобразовании к выбранному типу, что приводит к созданию таблицы - ..._ОшибкиИмпорта. Хотелось бы чтобы эта таблица невозникала, есть ли возможность запретить Access ее создавать? Я вижу (некоторые применяю) следующие варианты: 1. Таблицу ..._ОшибкиИмпорта потом удалять, НО: название он вибрает для дуракцие, сразу-то и не вичислишь, например таб. наз. "f101_10" - "101_0703_ОшибкиИмпорта", конечно можно фильтровать имена таблиц и удалять с текстом "_ОшибкиИмпорта", но вдруг так удалишь вместе со своей, чужие ошибки, нужные, от другой таблицы... 2. Задавать для всех полей текстовой тип, а потом запускать запрос на преобразование данных из этих полей в нужный тип и помещения в другой столбец (сейчас им пользуюсь). Как недостатки: после импорта еще 1-2 дополн. запроса запускаем, по времени получается дольше, чем если Access сразу в нужный тип преобразовывает с ошибками (не знаю кстати почему...) Облазил все SetOptions - ничего похожего не нашел. P.S. для наших гуру: судя по количеству топиков на тему импорта/экспорта из/в Access, нехватает FAQ на эту тему, который объединил бы все часто возникающие вопросы по этой тематике.... А я бы мог поучавствовать в процессе как заинтересованный критик (потому как импортом туда и обратно занимаюсь наверное половину всего времени :-) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2003, 14:09 |
|
||
|
DoCmd.TransferText: избавиться от ..._ОшибкиИмпорта
|
|||
|---|---|---|---|
|
#18+
Насчет фака - согласен. В качестве варианта ответа: я бы написал свою программу, которая делала бы импорт без обращения к стандартному импорту Аксесса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2003, 14:15 |
|
||
|
DoCmd.TransferText: избавиться от ..._ОшибкиИмпорта
|
|||
|---|---|---|---|
|
#18+
Ага, в смысле функция которая открывает файл, используя те же спецификации, и посимвольно и построчно считывает из файла, с нужным преобразованием, и пихать полученные данные в новую таблицу... Идея интересная, надо будет попробовать накалякать, а тормозить не будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2003, 14:40 |
|
||
|
DoCmd.TransferText: избавиться от ..._ОшибкиИмпорта
|
|||
|---|---|---|---|
|
#18+
Насчет тормозить - не сравнивал. Но вот текст, который когда-то писал я. Процедура MyImport вызывается по синтаксису, который аналогичен стандартному синтаксису импорта. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2003, 14:56 |
|
||
|
DoCmd.TransferText: избавиться от ..._ОшибкиИмпорта
|
|||
|---|---|---|---|
|
#18+
СУПЕР!!! практически все написано. Думаю надо засунуть туда еще возможность создания сразу новой таблицы в соотв. со спецификации, функц. преобразования данных для поля к нужному типу, ну и............. опробовать sct это дело по скорости (у меня просто из таких текстовых файлов около 200 000 записей за раз импортируется) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2003, 15:38 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1753&tid=1679543]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 188ms |
| total: | 290ms |

| 0 / 0 |
