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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Экспорт из Excel в Access 
:(
    Опции темы
gambrinus
Дата 30.3.2006, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем привет!

Нужна помощь.
Есть куча файлов в Excel которые нужно привести к человеческому виду. Вбивать руками-долго и неправильно.
Структура данных такая:
В одну таблицу записываются данные о поставке (счет, поставщик, дата, 3 авто) - одна запись на файл.
В другую таблицу заносятся данные по поставленным в этой поставке продуктам, те таблицы связаны "один ко многим.

Люди, научите как сделать такое дело!
Можно кодом из Excel, можно из Access.
Никогда этим делом не занимался, даже не знаю как подойти к этому вопросу smile

Буду благодарен за любую информацию!

Табличку приатачел.
Добавлено @ 16:38
что-то файл не прицепился smile
Лежит тут : http://rapidshare.de/files/16785478/test.zip.html
PM MAIL   Вверх
gromstar
Дата 30.3.2006, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Куча это сколько десять, двадцать?. Сколько таблиц в каждом файле? Даже если их порядка 50 на мой взгляд проще всего привести к человеческому виду екселевские файлы (выделить заголовок и данные, требуется для правильного импорта) и вручную импортировать их в базу данных. И в базе данных связать все нужные поля. В хелпе по Access в разделе импорт и связывание, есть начальная информация, и в принципе достаточно понятная. Это займет где-то день, ну может два. Если файлы тяжело привести к человеческому виду, тогда я был импортировал одну таблицу в Access, добавил нужные поля. А затем уже копировал записи из екселевских файлов в Access. очень тяжело учесть все нюансы в файлах Excel при написании какого то кода программы, и стоит ли ее писать? Да и потом это будет разовая работа, стоит ли тратить время на это, разве что в качестве тренировки своих способностей smile . Дак их можно тренирнуть и на другом поприще. Плохо что нет файла, что бы глянуть в живую че там у тебя.
PM MAIL   Вверх
gambrinus
Дата 30.3.2006, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Файлов много, более двухсот!
Типичный файл лежит по ссылке http://rapidshare.de/files/16785478/test.zip.html
сюда прицепить не смог smile
У всех файлов-одинаковая структура, создавались копированием и изменением.
В каждом файле есть заголовок и одна таблица (кол-во строк в таблице для каждого файла-разное).
По идее это все нужно перетащить в две таблицы с отношением "один ко многим".

С какой стороны подойти-совсем не знаю smile
PM MAIL   Вверх
Akina
Дата 31.3.2006, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(gambrinus @ 30.3.2006, 23:16 Найти цитируемый пост)
Файлов много, более двухсот!

Это - немного. На час работы - и все импортировано в Аксесс.


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

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


Новичок



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

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



Дарова gambrinus, Глянул я на твои файлы. И сделал следующие выводы: smile
Приблизительную структуру базы данных я набросал, сможешь забрать ее из прикрепленного файла. Насколько верно я ее сделал судить только тебе, там все элементарно. Разберешься. А вот записи я бы на твоем месте все же переносил вручную. Один файл у меня занял 2 мин. Я просто копировал и вставлял записи. И сразу вопрос, а стоит ли их копировать туда? Оформи нормально базу и начинай заносить новые записи. А старые по немногу подтянешь если уже край надо.

Присоединённый файл ( Кол-во скачиваний: 15 )
Присоединённый файл  TEST_BD.rar 9,87 Kb
PM MAIL   Вверх
gambrinus
Дата 31.3.2006, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(gromstar @ 31.3.2006, 10:57)
А вот записи я бы на твоем месте все же переносил вручную.
...
И сразу вопрос, а стоит ли их копировать туда? Оформи нормально базу и начинай заносить новые записи. А старые по немногу подтянешь если уже край надо.

Привет!
Спасибо за инфу. Я новые данные вношу уже в базу, и старые приходится руками тянуть smile
К вот как процедуру на VBA прописать?
Вот в этом-то и вопрос!!!
PM MAIL   Вверх
gromstar
Дата 31.3.2006, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



если все файлы типовые, такие как в прикрепленном файле, ну в смысле однообразные. То я бы сделал так: создал форму в Access. прицепил кнопку и на кнопку прилепил обработку события. Создал бы объект Excell с помощью .Application
Код

Dim oApp As Object

    Set oApp = CreateObject("Excel.Application")
    oApp.Visible = True
    With oApp
    .Workbooks.Open ("С:\здесь путь к твоему файлу\164.xls")
    End With

, присвоил его переменной. Переместил все фалы в одну папку. список файлов можно получить с помощью методов объекта . CreateObject("Scripting.FileSystemObject") И в фоновом режиме открывал по очереди все файлы. там не сложный код. Все есть в справке. В файле устанавливаешь фокус на определенные ячейки и присваиваешь их либо просто переменным, либо создаешь массив. Переход по определенным ячейкам можешь написать макросом прямо в Excell. А потом код перекинуть в Access. У меня всегда работало. Открываешь набор записей в Access c помощью объекта Recordset. И добавляешь туда свои присвоенные переменные. Переходишь к следующей записи. Берешь новый файл и повторяешь выборку из ячеек , ну и по кругу до последнего файла. Но учти если у тебя в Excell в указанной ячеке будут другие данные, сам понимаешь... Вот в чем вся загвоздка. файлы обязательно должны быть типовыми. И еще код тебе придется писать самому smile . это практика как ни как. А вот если что то не будет получаться, тогда спрашивай smile . Думаю люди подскажут. А может у кого и типовое что то есть... smile Удачи! smile
PM MAIL   Вверх
gambrinus
Дата 3.4.2006, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо, сейчас буду пытаться ковырять...
PM MAIL   Вверх
gambrinus
Дата 6.4.2006, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Еще вопрос в тему:
Файлы в каталоге будут добавляться. Чтобы втягивать данные только из новых файлов нужно что-то сделать. Первое, что приходит на ум-это завести таблицу с именами файлов, которые уже были втянуты. В процессе прохода сравнивать имя открываемого файла с наличием его в таблице.

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

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

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

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


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

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


 




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


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

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