Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2013, 22:27   #1
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию импорт из Excel в Access

Всем привет, скажите пожалуйста есть ли вариант импортировать данные из Excel в Access? встроенные вариант импорта в Accesse меня не устраивает потому что там создается новая таблица а мне нужно импортировать в уже существующую базу, причем поля в Excel и в Access отличаются, может можно каким нибудь SQL запросом импортировать и указать что и в какие поля импортировать?
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 16.05.2013, 09:00   #2
denis.ta-com
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 39
По умолчанию

Как вариант, можно создать связь с листом Excel, а после работать сним как стаблицей
Код:
CurrentDb.Execute "INSERT INTO Таблица1 ( 1, 2, 3, 4 ) SELECT Лист1.F2, Лист1.F3, Лист1.F4, Лист1.F1 FROM Лист1"
добавление данных Таблица1 данными Лист1, в примере я поменял местами поля при добавлении
denis.ta-com вне форума Ответить с цитированием
Старый 16.05.2013, 11:53   #3
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Цитата:
CurrentDb.Execute "INSERT INTO Таблица1 ( 1, 2, 3, 4 ) SELECT Лист1.F2, Лист1.F3, Лист1.F4, Лист1.F1 FROM Лист1"
а что означает например F1. F2 итд? мне это не понятно, это название столбца?
и как именно создать связь с Excel? можно мне пошагово пожалуйста если не затрудник?просто я так еще не делал
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 16.05.2013, 16:04   #4
denis.ta-com
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 39
По умолчанию

F1, F2, ... - да это столбцы
Связь создается также как и импорт из Excel, только надо выбирать не "импортировать данные в новую таблицу", а "создать связанную таблицу для связи с источником данных", данные в ексельке могут меняться изменения будут видны в базе

Последний раз редактировалось denis.ta-com; 16.05.2013 в 16:05. Причина: ошибка
denis.ta-com вне форума Ответить с цитированием
Старый 16.05.2013, 22:33   #5
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте betirsolt
Для получения данных с листа Excel или диапазона листа, не обязательно подключаться к файлу.
Данные могут быть получены подобными SQL конструкциями:

Код:
SELECT * FROM [Лист1$]  IN "C:\Users\1\Desktop\File.xls" "Excel 8.0; HDR=Yes;"

SELECT * FROM [Excel 8.0; HDR=No;DATABASE=C:\Users\1\Desktop\File.xls].[Лист1$A2:e500]
..[Лист1$].. - считывает данные со всего листа
..[Лист1$A2:e500].. - с заданного диапазона
HDR=No - указывает, что источник не содержит заголовков (имен полей) и им автоматически присваиваются имена F1, F2,...FN
присутствие HDR=Yes (или отсутствие HDR=..) говорит о том, что первая строка содержит заголовки

Соответственно запрос на добавление может выглядеть так:
Код:
INSERT INTO Таблица1 ( Field1, Field2, Field3, Field4 ) 
       SELECT F1, F2, F3, F4 FROM [Excel 8.0;HDR=No;DATABASE=C:\...\File.xls][Лист1$A2:e500]
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 17.05.2013, 09:39   #6
denis.ta-com
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 39
По умолчанию

Цитата:
INSERT INTO Таблица1 ( Field1, Field2, Field3, Field4 )
SELECT F1, F2, F3, F4 FROM [Excel 8.0;HDR=No;DATABASE=C:\...\File.xls][Лист1$A2:e500]
Евгений не могли бы вы дать пример прямого запроса на импорт из Excel c условием импорта (например поле F2=22), пример со связанной екселькой:
Код:
INSERT INTO Таблица1 ( 1, 2, 3 )
SELECT Лист1.F1, Лист1.F3, Лист1.F4
FROM Лист1
WHERE (((Лист1.F2)=22));
ставилась такая задача, вышел из положения этим способом
пытался переработать вашу конструкцию - акцес ругается на длину, похоже я чего-то недопонимаю...

Последний раз редактировалось denis.ta-com; 17.05.2013 в 09:46.
denis.ta-com вне форума Ответить с цитированием
Старый 17.05.2013, 10:00   #7
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

большое спасибо что помогаете, пытаюсь сделать такой запрос
Код:
INSERT INTO Обратившиеся ( Дата_обращения, Телефон, Текст_обращения, Категория,Район ) 
       SELECT F1, F2, F3, F4, F5 FROM [Excel 8.0;HDR=No;DATABASE=D:\1.xlsx][Лист1$A1:e200]
но выдает ошибку

у меня 2007 офис, что я делаю не так?
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 17.05.2013, 10:09   #8
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Цитата:
denis.ta-com
я создал связь с этим листом, теперь скажите по шагово как дальше?
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 17.05.2013, 10:25   #9
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

теперь по вашему варианту пытаюсь сделать вот такой запрос
Код:
INSERT INTO Обратившиеся ( Дата_обращения, Телефон, Текст_обращения, Категория, Район )
SELECT Лист1.F1, Лист1.F2, Лист1.F3, Лист1.F4, Лист1.F5
FROM Лист1;
ошибок не выдает но показывает окошко где предлагает ввести мне значения полей
Код:
Лист1.F1, Лист1.F2, Лист1.F3, Лист1.F4, Лист1.F5
а мне нужно импортировать все как есть, что нужно сделать?
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 17.05.2013, 12:46   #10
denis.ta-com
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 39
По умолчанию

Проверьте название полей в присоедененой таблице "Лист1", возможно они называюттся не "F..."
Поповоду ошибки "ядро базаданных не может найти..." - поставьте точку между квадратных скобок, пример
Код:
INSERT INTO Таблица1 ( 1, 2, 3, 4 )
SELECT F1, F2, F3, F4
FROM [Excel 8.0;HDR=No;DATABASE=D:\Документы\Desktop\123.xlsx].[Лист1$A1:D2];
denis.ta-com вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт в Access из Excel Proekt456 Фриланс 8 20.08.2012 11:41
импорт данных из Excel в Access mr.kot Microsoft Office Access 3 13.11.2011 22:55
Импорт-экспорт данных Excel-Access, и из Access-Excel Людвиг Microsoft Office Access 3 27.10.2011 14:38
Импорт из Excel в Access mortal2010 Microsoft Office Access 1 11.02.2011 16:38
Импорт из Excel в Access AD_min БД в Delphi 0 28.10.2008 09:29