Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/242: Рейтинг темы: голосов - 242, средняя оценка - 4.88
2 / 2 / 0
Регистрация: 04.04.2012
Сообщений: 28

Импорт данных из Excel в Access

04.04.2012, 09:54. Показов 45942. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

Я недавно сел за Access. У меня возник вопрос:
Как можно импортировать данные из Excel в Access, в которой уже есть готовая база?
Примеры Excel i Access, прикреплены ниже.

Я не особо знаком с функционалом Access, я попробовал импортировать без VB макросов.
Access импортирует все данные из Excel в виде одной таблицы. (я импортировал все списки городов и стран)
На сколько я понимаю для связи этих списков, нужно создать формы ввода, затем написать скрипты (макросы), которые будут вытягивать данные из Excel и вбивать в созданные формы.

Если у кого есть примеры подобного рода либо ссылки на полезные материалы, буду благодарен.

С уважением.
Миниатюры
Импорт данных из Excel в Access   Импорт данных из Excel в Access  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.04.2012, 09:54
Ответы с готовыми решениями:

Экспорт-импорт данных Excel-Access-Excel
Доброе время суток уважаемые форумчане. Приходит информация в экселевской таблице. Скидываю её в общую базу в Access. Для отчета...

Импорт данных из excel в access
Доброе время суток! При создании базы данных я столкнулся с проблемой, которую пока не могу решить, возможно я найду здесь ответ. Проблема...

Импорт данных из Excel в БД Access
Здравствуйте. Не первый раз сталкиваюсь с проблемой импорта данных. Из готовой таблицы Excel импортировать данные в готовую таблицу БД....

33
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,941
Записей в блоге: 4
04.04.2012, 10:44
вы бы лучше мдб-шку и ексельку выкладыкали

на примере легче воспринимаются потребности

а рисунки
--табличка
--кусок из схемы данных

ясности в вопросе не дали
--добавлять в таблички или заменять
--примерный объем 1000-10000-100000-1млн записей во вставке или накопительной таблице
--как не загнать данные за март из екселя в аксесс --два раза
1
210 / 96 / 6
Регистрация: 23.07.2010
Сообщений: 235
04.04.2012, 10:51
Почитай:
https://office.microsoft.com/r... 19419.aspx
1
2 / 2 / 0
Регистрация: 04.04.2012
Сообщений: 28
04.04.2012, 13:14  [ТС]
вы бы лучше мдб-шку и ексельку выкладыкали

на примере легче воспринимаются потребности

а рисунки
--табличка
--кусок из схемы данных

ясности в вопросе не дали
--добавлять в таблички или заменять
--примерный объем 1000-10000-100000-1млн записей во вставке или накопительной таблице
--как не загнать данные за март из екселя в аксесс --два раза
Данные не могу выкладывать.
В общем база нужна для кадрового учета сотрудников. Для того в аксессе создал все таблицы и отношения между ними. Импорт справочников (городов и стран) - труда не составило, т.к. там всего несколько полей и для этого всего лишь нужно нажать мастер импорта из эксель.
При импорте надо, чтобы аксесс не создавал новые таблицы, а раскладывал всю информацию из Excel в соответствующие таблицы в Access, таким образом, что бы данные в разных таблицах были связанны.
На пример, в базе есть сущность - позиции (Position), эта таблица заполнена. Так же заполнены сущности City и Country, в них хранятся все списки профессий, городов и стран соответственно.
Теперь надо в базу Access загрузить данные о сотруднике из Excel, так что бы ФИО, Дата Рождения, пол и т.д. сотрудника сохранялись в таблице Employee, а его адрес сохранялся в таблице Address, город и страна были связаны с этим сотрудником.

Если есть вопросы либо не понятно, могу расписать еще... Заранее благодарю.

Добавлено через 6 минут
Цитата Сообщение от Fedogor Посмотреть сообщение
Спасибо начал читать, случайно нет готовых примеров?
Было бы еще лучше.
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,941
Записей в блоге: 4
04.04.2012, 13:15
заполнить 1-2 строки в ексель на ИВАНОВА и ИВАНОВУ,

и указать --какой столбик в какую таблицу аксесса идет--не велик секрет
1
2 / 2 / 0
Регистрация: 04.04.2012
Сообщений: 28
04.04.2012, 13:16  [ТС]
Цитата Сообщение от shanemac51 Посмотреть сообщение
заполнить 1-2 строки в ексель на ИВАНОВА и ИВАНОВУ,

и указать --какой столбик в какую таблицу аксесса идет--не велик секрет
Щас секунду...
0
2 / 2 / 0
Регистрация: 04.04.2012
Сообщений: 28
04.04.2012, 13:37  [ТС]
Сделал на скорую руку, поэтому в фаиле Excel заголовки и названия таблиц в базе разные.
По названиям столбцов можно понять в какую таблицу аксесса идет.
Вложения
Тип файла: zip top.zip (56.3 Кб, 885 просмотров)
0
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
04.04.2012, 13:45
В нашем разделе есть Путеводитель по форуму, в котором собраны полезные ссылки, в частности импорт из экселя тоже есть.
Импорт может быть разным:
-из конкретных ячеек конкретного листа
-всей таблицы из указанного файла
В зависимости от этого будет разная его реализация
1
2 / 2 / 0
Регистрация: 04.04.2012
Сообщений: 28
04.04.2012, 15:05  [ТС]
Цитата Сообщение от Ameli Посмотреть сообщение
В нашем разделе есть Путеводитель по форуму, в котором собраны полезные ссылки, в частности импорт из экселя тоже есть.
Импорт может быть разным:
-из конкретных ячеек конкретного листа
-всей таблицы из указанного файла
В зависимости от этого будет разная его реализация
Спасибо за ссылки, Ameli. Если честно я не особо знаком с VB.
Ниже я прикрепил фаил Excel и базу. Если есть время, можно на этом примере показать как сделать импорт. Я как понимаю здесь нужен VB.
Если это конечно возможно.

Заранее благодарю.
Вложения
Тип файла: zip 111.zip (52.7 Кб, 278 просмотров)
0
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
04.04.2012, 19:29
На форме создаем кнопку Импорт, на Нажатие которой запускаем следующую процедуру обработки:
Visual Basic
1
2
3
4
Private Sub Êíîïêà0_Click()
DoCmd.TransferSpreadsheet acImport, , "Employee", CurrentProject.Path & "\111.xlsx", True
DoCmd.RunSQL "UPDATE [Position] INNER JOIN Employee ON Position.POSITION_NAME = Employee.POSITION SET Employee.POSITION_ID = [Position]![POSITION_ID]"
End Sub
Первая команда - импортируем из экселевского файла в таблицу данные, должность текстом;
Потом запускаем запрос на обновление, в котором получаем код должности (в запросе объединяем текстовую должность с текстом должности таблицы Должности и обновляем Employee.POSITION_ID на полученный код должности из таблицы Должности
Вложения
Тип файла: rar ИмпортЭксель.rar (27.5 Кб, 1162 просмотров)
2
2 / 2 / 0
Регистрация: 04.04.2012
Сообщений: 28
05.04.2012, 16:24  [ТС]
Благодарю. Надо теперь разбираться.

Добавлено через 20 часов 44 минуты
Цитата Сообщение от Ameli Посмотреть сообщение
Visual Basic
1
2
3
4
Private Sub Импорт_Click()
DoCmd.TransferSpreadsheet acImport, , "Employee", CurrentProject.Path & "\111.xlsx", True
DoCmd.RunSQL "UPDATE [Position] INNER JOIN Employee ON Position.POSITION_NAME = Employee.POSITION SET Employee.POSITION_ID = [Position]![POSITION_ID]"
End Sub
Первая команда - импортируем из экселевского файла в таблицу данные, должность текстом;
Потом запускаем запрос на обновление, в котором получаем код должности (в запросе объединяем текстовую должность с текстом должности таблицы Должности и обновляем Employee.POSITION_ID на полученный код должности из таблицы Должности
У меня возник такой вопрос:
В этом примере, в таблицу Employee загружается как POSITION_ID, так и POSITION из экселевского фаила. Можно ли импортировать данные в таблицу Employee, записывая только POSITION_ID без POSITION. Или для этого нужно создавать одну таблицу для импорта POSITION из Excel?

И еще вопрос: допустим у меня есть список городов и стран, являющиеся таблицами в базе. Страна связана с городами, города с адресом, адрес с Employee.
В этом случае надо добавить Страну и город в Address, а остальные данные в Employee?

Прикрепил для примера фаилы ...
0
2 / 2 / 0
Регистрация: 04.04.2012
Сообщений: 28
05.04.2012, 16:29  [ТС]
Вот пример.
Вложения
Тип файла: zip 222.zip (69.2 Кб, 288 просмотров)
0
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
05.04.2012, 16:31
Цитата Сообщение от ryainad Посмотреть сообщение
Можно ли импортировать данные в таблицу Employee, записывая только POSITION_ID без POSITION
Сначала импортируется текстовый вариант должности, затем в запросе получаем код должности и подставляем его в соответствующее поле. В любом случае придется импортировать сначала должность-текст, как ни крути.
В этом случае надо добавить Страну и город в Address
Точно так же, как и с должностью, придется сначала импортировать текстовые поля Страна и Город, адрес, потом запросом получать их числовые коды страны и города.
Попробуйте по аналогии
1
2 / 2 / 0
Регистрация: 04.04.2012
Сообщений: 28
06.04.2012, 09:54  [ТС]
A что если создать формы к базе, которая уже есть. А затем при помощи скриптов закидывать данные в эти формы для сохранения в базе? На сколько это реально? Сложно и трудоемко?

Просто попытался сделать как ты (давай на ты, если не против) показал мне, тогда нет смысла создания реляционной БЗ. Если все данные в одной таблице ...

Или может есть другой способ?
0
11 / 8 / 0
Регистрация: 17.02.2012
Сообщений: 88
06.04.2012, 10:05
Цитата Сообщение от ryainad Посмотреть сообщение
показал мне
я думаю правильней будет "показала мне"
3
2 / 2 / 0
Регистрация: 04.04.2012
Сообщений: 28
06.04.2012, 10:09  [ТС]
Извеняюсь... не хотел обижать...
0
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
06.04.2012, 12:09
Тогда можно через временную таблицу: сначала сохранить все текстовые данные туда, потом получить числовые id города и должности, добавить из временной в таблицы Employee и Adress, очистить временную таблицу.
Зачем вам таблица Адрес отдельно? У каждого человека может быть несколько адресов? В экселе в таком случае данные по человеку будут повторяться с другим адресом?
1
2 / 2 / 0
Регистрация: 04.04.2012
Сообщений: 28
06.04.2012, 12:38  [ТС]
Цитата Сообщение от Ameli Посмотреть сообщение
Тогда можно через временную таблицу: сначала сохранить все текстовые данные туда, потом получить числовые id города и должности, добавить из временной в таблицы Employee и Adress, очистить временную таблицу.
За это спасибо!

Цитата Сообщение от Ameli Посмотреть сообщение
Зачем вам таблица Адрес отдельно? У каждого человека может быть несколько адресов? В экселе в таком случае данные по человеку будут повторяться с другим адресом?
Дело в том, что может быть временный адрес и/или адрес по прописке.
Я до этого еще не дошел, но я не знаю как я буду различать временный адрес от прописки, потому что в Excele поля адреса имеют 2 заголовка.
0
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
06.04.2012, 12:51
Еще раз повторю: если два адреса у человека, он будет два раза записан в экселе?
1
2 / 2 / 0
Регистрация: 04.04.2012
Сообщений: 28
06.04.2012, 12:59  [ТС]
Сотрудник 1 раз, но если у него 2 адреса, тогда эти адреса будут записаны в этой же строке, но в разных полях. Прикрепил пример:
Вложения
Тип файла: zip 222.zip (69.7 Кб, 180 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.04.2012, 12:59
Помогаю со студенческими работами здесь

Импорт данных из Access в Excel
Добрый день!!! Нужна помощь... Как поменять путь в эксель из акцесс. Дело в том что базу Акцес перенесли в другую сетевую папку,...

Импорт данных из Access в Excel
Доброго времени суток, подскажите пожалуйста, как можно осуществить импорт данных из Access в Excel причем не стандартным импортом и не...

Импорт данных из Excel в Access
Добрый день, очень нужна помощь. Как автоматически с помощью кода VBA (по нажатию кнопки) импортировать данные из определенной ячейки...

Импорт данных из Excel в Access
Доброго времени суток, уважаемые. Промлемка такая: нужно импортировать данные из таблицы Excel в базу данных Access и при том не все а...

Импорт данных из Excel в Access
Всех с наступающими! =) Проблема такая: есть база данных в access, есть в той же директории несколько книг excel под названием 1.xslm,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru