Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Импорт директории файлов Excel в таблицу Acess, Импорт директории файлов Excel в таблицу 
:(
    Опции темы
habanasailor
Дата 22.9.2011, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 22.9.2011

Репутация: нет
Всего: нет



Надо слить много файлов ( около 1000), находящихся в одной директории, в одну таблицу Access. Файлы имеют примерно одну структуру: 8 колонок, но количество строк в файлах меняется. Хотелось бы слить только информационную часть, без импорта пустых строк. Можно ли это сделать простым скриптом, т.к. я сам очень начинающий. Заранее благодарю.
PM MAIL   Вверх
Данкинг
Дата 22.9.2011, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



Да можно, конечно, я даже программку такую писал на Дельфях, именно для сливания несколько .XLS из одной директории. Только она всё сливает, а не именно непустые строки.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
udly
Дата 22.9.2011, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 25.3.2006

Репутация: нет
Всего: 0



Можно, но боюсь для начинающего это будет непростой скрипт. Я бы делал так: 
1.  В Access создать процедуру в которой в цикле перебираем все *.xls файлы.
2.  Открываем xls файл и проходим по всем строкам.
3.  Добавляем каждую строку из xls в таблицу access.
PM MAIL WWW   Вверх
Данкинг
Дата 22.9.2011, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



Цитата(udly @  22.9.2011,  14:45 Найти цитируемый пост)
проходим по всем строкам.

И по всем столбцам ещё. Поэтому работы программы быстрой не будет.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
habanasailor
Дата 22.9.2011, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 22.9.2011

Репутация: нет
Всего: нет



Спасибо. 
Я пользуюсь в настоящее время процедурой, в которой перед импортом в Access помечаю  блок данных в файлах Excel, и импортирую данные из этих блоков. Однако, при 1000 файлах это становится совсем не легкой работой часов на 6-8. Вот если бы просто, не помечая, импортировать все листы пусть для начала хотя бы и с пустыми строками...

Это сообщение отредактировал(а) habanasailor - 22.9.2011, 16:02
PM MAIL   Вверх
Akina
Дата 22.9.2011, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(udly @  22.9.2011,  14:45 Найти цитируемый пост)
для начинающего это будет непростой скрипт

Господи, что там сложного?
Заранее создать таблицу для загрузки данных.
Перебор файлов - функция Dir()
Импорт данных из очередного файла - TransferDatabase
Очистка от пустых строк после импорта - DoCMS.RunSQL.
Весь скрипт - вместе с организацией цикла - уляжется в 6 строк.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Данкинг
Дата 22.9.2011, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



Цитата(habanasailor @  22.9.2011,  16:59 Найти цитируемый пост)
Однако, при 1000 файлах это становится совсем не легкой работой часов на 6-8. 

Да если бы уже 100 файлов было - я бы уже не стал делать ничего подобного вручную.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
habanasailor
Дата 23.9.2011, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 22.9.2011

Репутация: нет
Всего: нет



Спасибо, Akina, по-моему это ценный совет,
попробуем.
Всем ответившим также спасибо.
PM MAIL   Вверх
habanasailor
Дата 23.9.2011, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 22.9.2011

Репутация: нет
Всего: нет



Однако, что-то не получилось, может и я косорукий. 
Дает ощибку скрипта, пишет мне, что команды TransferDatabase нет. Может ее и нет в Access 2010? Или еще чего. 
PM MAIL   Вверх
Akina
Дата 23.9.2011, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(habanasailor @  23.9.2011,  09:54 Найти цитируемый пост)
пишет мне, что команды TransferDatabase нет

STFW


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Данкинг
Дата 23.9.2011, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



Цитата(habanasailor @  23.9.2011,  09:54 Найти цитируемый пост)
Дает ощибку скрипта, пишет мне, что команды TransferDatabase нет. Может ее и нет в Access 2010? Или еще чего.  

"DoCmd.TransferDatabase ...... " уже в Access-2000 было.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
freehoster
Дата 10.11.2011, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 26.10.2011
Где: Москва

Репутация: нет
Всего: нет



Цитата(Данкинг @ 23.9.2011,  09:58)
Цитата(habanasailor @  23.9.2011,  09:54 Найти цитируемый пост)
Дает ощибку скрипта, пишет мне, что команды TransferDatabase нет. Может ее и нет в Access 2010? Или еще чего.  

"DoCmd.TransferDatabase ...... " уже в Access-2000 было.

попробуйте разобраться с другими возможностями импорта, а именно Преобразовать ЭлектроннуюТаблицу (Transfer Spreadsheet).
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0994 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.