![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
gambrinus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 29.3.2006 Репутация: нет Всего: нет |
Всем привет!
Нужна помощь. Есть куча файлов в Excel которые нужно привести к человеческому виду. Вбивать руками-долго и неправильно. Структура данных такая: В одну таблицу записываются данные о поставке (счет, поставщик, дата, 3 авто) - одна запись на файл. В другую таблицу заносятся данные по поставленным в этой поставке продуктам, те таблицы связаны "один ко многим. Люди, научите как сделать такое дело! Можно кодом из Excel, можно из Access. Никогда этим делом не занимался, даже не знаю как подойти к этому вопросу ![]() Буду благодарен за любую информацию! Табличку приатачел. Добавлено @ 16:38 что-то файл не прицепился ![]() Лежит тут : http://rapidshare.de/files/16785478/test.zip.html |
|||
|
||||
gromstar |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 10.3.2006 Репутация: нет Всего: нет |
Куча это сколько десять, двадцать?. Сколько таблиц в каждом файле? Даже если их порядка 50 на мой взгляд проще всего привести к человеческому виду екселевские файлы (выделить заголовок и данные, требуется для правильного импорта) и вручную импортировать их в базу данных. И в базе данных связать все нужные поля. В хелпе по Access в разделе импорт и связывание, есть начальная информация, и в принципе достаточно понятная. Это займет где-то день, ну может два. Если файлы тяжело привести к человеческому виду, тогда я был импортировал одну таблицу в Access, добавил нужные поля. А затем уже копировал записи из екселевских файлов в Access. очень тяжело учесть все нюансы в файлах Excel при написании какого то кода программы, и стоит ли ее писать? Да и потом это будет разовая работа, стоит ли тратить время на это, разве что в качестве тренировки своих способностей
![]() |
|||
|
||||
gambrinus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 29.3.2006 Репутация: нет Всего: нет |
Файлов много, более двухсот!
Типичный файл лежит по ссылке http://rapidshare.de/files/16785478/test.zip.html сюда прицепить не смог ![]() У всех файлов-одинаковая структура, создавались копированием и изменением. В каждом файле есть заголовок и одна таблица (кол-во строк в таблице для каждого файла-разное). По идее это все нужно перетащить в две таблицы с отношением "один ко многим". С какой стороны подойти-совсем не знаю ![]() |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Это - немного. На час работы - и все импортировано в Аксесс. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
gromstar |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 10.3.2006 Репутация: нет Всего: нет |
Дарова gambrinus, Глянул я на твои файлы. И сделал следующие выводы:
![]() Приблизительную структуру базы данных я набросал, сможешь забрать ее из прикрепленного файла. Насколько верно я ее сделал судить только тебе, там все элементарно. Разберешься. А вот записи я бы на твоем месте все же переносил вручную. Один файл у меня занял 2 мин. Я просто копировал и вставлял записи. И сразу вопрос, а стоит ли их копировать туда? Оформи нормально базу и начинай заносить новые записи. А старые по немногу подтянешь если уже край надо. Присоединённый файл ( Кол-во скачиваний: 15 ) ![]() |
|||
|
||||
gambrinus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 29.3.2006 Репутация: нет Всего: нет |
Привет! Спасибо за инфу. Я новые данные вношу уже в базу, и старые приходится руками тянуть ![]() К вот как процедуру на VBA прописать? Вот в этом-то и вопрос!!! |
|||
|
||||
gromstar |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 10.3.2006 Репутация: нет Всего: нет |
если все файлы типовые, такие как в прикрепленном файле, ну в смысле однообразные. То я бы сделал так: создал форму в Access. прицепил кнопку и на кнопку прилепил обработку события. Создал бы объект Excell с помощью .Application
, присвоил его переменной. Переместил все фалы в одну папку. список файлов можно получить с помощью методов объекта . CreateObject("Scripting.FileSystemObject") И в фоновом режиме открывал по очереди все файлы. там не сложный код. Все есть в справке. В файле устанавливаешь фокус на определенные ячейки и присваиваешь их либо просто переменным, либо создаешь массив. Переход по определенным ячейкам можешь написать макросом прямо в Excell. А потом код перекинуть в Access. У меня всегда работало. Открываешь набор записей в Access c помощью объекта Recordset. И добавляешь туда свои присвоенные переменные. Переходишь к следующей записи. Берешь новый файл и повторяешь выборку из ячеек , ну и по кругу до последнего файла. Но учти если у тебя в Excell в указанной ячеке будут другие данные, сам понимаешь... Вот в чем вся загвоздка. файлы обязательно должны быть типовыми. И еще код тебе придется писать самому ![]() ![]() ![]() ![]() |
|||
|
||||
gambrinus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 29.3.2006 Репутация: нет Всего: нет |
Спасибо, сейчас буду пытаться ковырять...
|
|||
|
||||
gambrinus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 29.3.2006 Репутация: нет Всего: нет |
Еще вопрос в тему:
Файлы в каталоге будут добавляться. Чтобы втягивать данные только из новых файлов нужно что-то сделать. Первое, что приходит на ум-это завести таблицу с именами файлов, которые уже были втянуты. В процессе прохода сравнивать имя открываемого файла с наличием его в таблице. Подскажите, как это организовать можно? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "MS Access" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MS Access | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |