Связь access с excel
Иллюстрированный самоучитель по Microsoft Access 2003
Связывание с данными Excel. Копирование связанных данных.
Данные Excel не обязательно импортировать в Access. В некоторых случаях с таблицей Excel можно создать связь. Такая связь является динамической. Это значит, что при внесении изменений в источник данных, т.е. в Excel, они изменяются и в Access, и наоборот. Чтобы продемонстрировать описываемый эффект на практике, настроим связь с файлом КаталогиЕхса!.xls, выполнив следующие действия.
- Выберите в Access команду Файл › Внешние данные › Связь с таблицами.
- В списке Тип файла выберите элемент Microsoft Excel (*.xls), укажите в списке файлов таблицу КаталогиЕхсеl.xls и щелкните на кнопке Связь. Кроме того, на файле можно дважды щелкнуть (для указания файлов в других таблицах используется элемент управления Папка, но в данном примере он не потребуется). Будет запущен мастер Связь с электронной таблицей.
- В первую очередь следует указать, что именно будет связываться – вся таблица или только именованный диапазон. Оставьте выбранным переключатель Листы и щелкните на кнопке Далее.
- В следующем окне можно указать заголовки столбцов Excel в качестве имен полей. Рекомендуется всегда устанавливать флажок Первая строка содержит заголовки столбцов. В противном случае имена полей будут обработаны Excel как обычные записи. Установив флажок, щелкните на кнопке Далее.
- В последнем окне введите имя новой связанной таблицы СвязанныеКаталогиИзЕхсеl, щелкните на кнопке Готово, а затем на кнопке ОК в окне предупреждения. Среди других записей таблиц в окне базы данных появится запись новой таблицы, обладающая в отличие от записей всех других таблиц значком Excel, как показано на рис. 16.4.
Рис. 16.4. Связанный источник данных обрабатывается Access как файл Excel
Смело открывайте связанную таблицу и вносите в нее изменения. Затем откройте исходную таблицу в Excel и убедитесь, что ее содержимое также изменилось. Теперь, наоборот, измените данные в этой таблице, закройте ее, откройте связанную таблицу в Access, и вы убедитесь, что в ней отобразились изменения, произведенные в таблице Excel.
Копирование связанных данных
Возможна такая ситуация, когда данные связанной таблицы хранятся не в базовом приложении, а непосредственно в Access. Для копирования связанной таблицы в локальную базу данных понадобится выполнить всего несколько щелчков мышью. Вот как это делается на практике.
- Выберите в окне базы данных ссылку Таблицы.
- Щелкните правой кнопкой мыши на имени таблице СвязанныеКаталогиИзЕхсеl и выберите команду Копировать.
- Щелкните правой кнопкой мыши на пустой области окна базы данных и выберите команду Вставить.
- В диалоговом окне Вставка таблицы введите имя новой таблицы КаталогиИзЕхсеlВставленные. Установите переключатель Структура и данные (локальная таблица). Щелкните на кнопке ОК для создания в Access новой таблицы.
- Откройте таблицу КаталогиИзЕхсеlВставленные – в ней содержатся все данные исходной таблицы. По значку таблицы в окне базы данных можно с уверенностью сказать, что это локальная таблица.
- Для вставки связанной таблицы в диалоговом окне Вставка таблицы предлагается на выбор четыре переключателя:
- связанная таблица – создание новой связи с базовыми данными и отображение значка связи в окне базы данных;
- только структура (локальная таблица) – создание новой пустой таблицы в Access, содержащей те же поля, что и связанная таблица;
- структура и данные (локальная таблица) – создание новой таблицы в Access с теми же полями, что и в локальной таблице, и импорт связанных данных в новую таблицу;
- добавление данных в таблицу – добавление данных из связанной таблицы в уже существующую таблицу Access.
Выгрузка данных из Access в шаблон Word и Excel
Всем привет, сегодня мы поговорим о том, как можно выгрузить данные из Access в такие приложения как Word и Excel. Но не о стандартном способе, который есть в Access (связь с Office), а о способе, который позволяет выгружать данные в заданный шаблон как в Word, так и в Excel.
Другими словами, это нужно тогда, когда создать отчет в Access по шаблону, который уже существует, например, в Word, невозможно или слишком трудоемко. Как Вы знаете, отчет в Access может выводиться просто коряво или, самый распространенный вариант, это когда много текста, который в отчете Access не так хорошо форматируется как в Word, а данных не так много, но отчет необходимо автоматизировать, например это какие-то договора, заявления и так далее.
Использование слияния из самого Word-а не очень удобно, поэтому сегодня я расскажу, как можно заполнять такие шаблоны напрямую из Access, путем нажатия на одну кнопку.
Кроме выгрузки в шаблон Word, иногда возникает и необходимость выгрузки в шаблон Excel, и этот способ мы тоже сегодня рассмотрим.
Экспорт данных из Access в шаблон Word
Вся разработка делится на две части, это:
- Настройка шаблона Word;
- Настройка выгрузки данных в шаблон.
Суть настройки шаблона заключается в том, чтобы проставить необходимые поля в тех местах шаблона, где нужно выводить те или иные данные. Это делается с помощью полей формы.
Примечание! Я использую Microsoft Word 2003.
Открываем шаблон Word, для начала добавим необходимую панель инструментов, для этого нажимаем «Вид -> Панель инструментов» и ставим галочку «Формы». Теперь у Вас отобразилась панель инструментом «Формы». Все, что осталось сделать — это вставить в местах, в которых необходимо выводить данные, элементы «Текстовое поле», которые доступны на только что добавленной панели инструментов.
После добавления поля, у Вас появится серая область, которая свидетельствует о том, что поле добавлено. Теперь необходимо задать имя этого поля, для того чтобы потом из access вставлять в него значения (стандартное названия не очень удобное). Для этого щелкните правой кнопкой мыши по полю и нажмите «Свойства». В поле закладка напишите желаемое имя этого поля, я в примере назвал его MyTestPole.
Создайте столько полей, сколько Вам нужно.
На этом настройка шаблона закончена, рекомендую сделать этот шаблон только для чтения, а то пользователь возьмет, сформирует документ и сохранит его, и шаблон тем самым потеряется, а если сделать его только для чтения, то у него такой возможности не будет, только сохранять через «Сохранить как».
Переходим к более интересной задачи, это к реализации самой выгрузки из Access в этот шаблон на VBA.
Примечание! Я использую Access в связке с MS SQL 2008, поэтому и данные буду брать от туда.
Код VBA для выгрузки данных в шаблон Word
Допустим, у Вас есть форма, сделайте на ней кнопку (я назвал ее testbutton) и в событие нажатие кнопки вставьте следующий код VBA:
Код прокомментирован, поэтому сложностей возникнуть не должно. Здесь весь смысл сводится к созданию объекта word.document и word.application. А после мы уже работаем с нашими объектами, т.е. заполняем их.
Экспорт данных из Access в шаблон Excel
В шаблоне Excel уже не нужно создавать поля как в Word, так как здесь мы уже будем ориентироваться по адресам ячеек.
Существует несколько способов, как заполнять Excel шаблон, я опишу два, первый — это тогда, когда Вам просто необходимо проставить несколько полей, т.е. в источнике данных будет всего одна строка с несколькими столбцами. Второй — это когда строк будет уже несколько, причем Вы не знаете, сколько именно (в зависимости от каких то условий). В шаблоне по умолчанию отведено для этого все пару строк, поэтому мы будем нужные нам строки добавлять, для того чтобы наши данные не накладывалась на строки ниже (допустим там примечание, подпись руководителя и т.д.). И совет, я здесь, для примера, использую всего один источник данных, а Вы, если Вам необходимо заполнить шапку, примечание и некое количество строк (т.е. область данных), можете использовать несколько источников (Recordset).
Код VBA для выгрузки данных в шаблон Excel
Сначала добавьте кнопку на форму (я ее назвал testexcel) и вставьте следующий код в событие «Нажатие кнопки».
Здесь я также все подробно прокомментировал, но если есть вопросы, то задавайте их в комментариях к данной статье.
Связь с «умными таблицами» Excel
Возникла необходимость как-то подключить к базе Access несколько «умных таблиц» Excel.
Чтобы избежать путаницы терминологии, на всякий случай поясню, что под «умными таблицами» понимается вот это:
Ссылка на справку Майкрософта
Я когда-то уже работал с ними через VBA в самом Экселе, тогда обращался через коллекцию ListObjects объекта Worksheet.
А вот как бы так исхитриться, чтобы подключить эти «умные таблицы» к базе в виде присоединенных таблиц Access.
Подключить просто как лист Экселя — не совсем то, т.к. хотелось бы получить возможность пользоваться такими свойствами умных таблиц, как имена полей, например (они там есть).
То есть подключаться надо как бы не просто к листу экселя, а именно к «умной таблице» на этом листе.
Подскажите, есть ли вообще такая возможность.
Заранее большое спасибо за ответ.
Связь Форм с таблицами. Бд «Склад»
Добрый день, знатокам! ) 🙂 Прошу о помощи, а точнее поделитесь своим багажем знаний и научите.
Связь БД с таблицами Excel
Такая проблема есть БД и есть таблицы ексель как их связать?
Поменять связь с «один к одному » в «один ко многим» межу таблицам
У меня такой глупый вопрос. Не могу разобраться. Мне нужно поменять связь с «один к одному » в.
не получаеться создать связи между таблицами. БД «Грузоперевозки»
Всем привет, создаю базу даных никак не получаеться создать связи между таблицами, помогите.
Извиняюсь за ссылку, что-то не так ввел. Например, вот еще ссылка:
http://perfect-excel.ru/publ/excel/r. licy/10-1-0-33
Добавлено через 9 минут
mobile, Спасибо, с этим способом вы меня познакомили ранее) Но он, насколько я понимаю, даст подключение просто к листу экселя, и имена полей там будут стандартного вида, а не такие, как они поименованы в умной таблице. А если придется заморачиваться с автоматизацией, то скорее всего проще будет просто кодить все в VBA сразу в Экселе. Просто у меня здесь возникла задача увязать между собой несколько умных таблиц и наладить между ними обновление данных по определенным алгоритмам, вот и подумал, что в плане связей и обновления данных было бы удобнее воспользоваться преимуществами Access. Но раз другого способа подключиться именно к «умной таблице» нет — что ж, будем возиться напрямую в Экселе. Спасибо еще раз за ответ.
конечно
обычная таблица екселя —это чулан , набитый ячейками с всевозможными типами данный
умная —-попытка разложить информацию по полочкам , полочки же можно уже приукрасить(постелить пленку, повесить занавеску, покрасить в разный цвет)
но я пользуюсь екселем крайне редко(в основном в него вывожу длинные отчеты или если это определено заданием)
более мелкие отчеты(счета фактуры и . ) вывожу в формате НТМ для просмотра в браузере или печати вордом
Добавлено через 22 минуты
обычная, не сильно закрученная задача имеет
—2-3 основных таблицы(например: кадры-1 таблица, счета-фактуры -2 таблицы
—5-90 справочников(по личному опыту, бывает и больше) для подстановки наименований
и с этой информации надо выдать всевозможные выборки/просмотры/отчеты
—численность по профессиям (по заводу)
—численность по профессиям (по цехам)
—возрастной состав. цех . зав
—списки пенсионеров .
. и еще 999. вариантов
есть более/менее стандартные —их можно конструктором создать
но чаще —это всевозможное сочетание полей и сортировок, которое за день могут меняться несколько раз
по-этому для своих пользователей в access сделала форму, где пользователь выбирает
—нужные поля
—нужные периоды времени
—нужную сортировку
—и получает НТМ отчет, который может доработать(РАНЬШЕ ОН ВЫБИРАЛ И ЗАНОВО ВВОДИЛ ИНФОРМАЦИЮ CО СТАНДАРТНОГО ОТЧЕТА)
—а ворд автоподгонит ширину столбцов и высоту строк, при нужде можно изменить шрифт или ориентацию страниц(в екселе сей этап доводил меня до белого каления)
Практикум: «Обмен данными между Microsoft Access и Microsoft Excel»
Использование внешних данных (импорт, экспорт и связывание)
При работе с Access зачастую возникает необходимость использования данных, сохраненных в других форматах (например, в файлах .xls) или расположенных в других местах (по сравнению с текущей базой данных). Для таких случаев используют одно из следующих средств:
1) импорт данных;
Часто приходится выполнять обратную операцию – передавать данные из Access в другие приложения – Word, Excel, Lotus или другую базу данных – MS Access, Microsoft SQL Server, Oracle. В таких случаях проводят процедуру 3) экспорта данных.
Импорт данных
В Access могут быть импортированы файлы следующих типов: файлы Microsoft Access (.mdb, можно импортировать таблицы, запросы и прочие объекты), файлы электронных таблиц(Microsoft Excel (.xls), Lotus Notes (.wks, wrk)), Microsoft Outlook, Текстовые файлы (.txt), вэб-страницы (html, xml), ODBC Databases (файлы других баз данных).
Для импорта нужного файла нужно выбрать вкладку Файл, затем Внешние данные, после чего выбираем Импорт (File, Get External Data, Import). Появится диалоговое окно Импорт (Import). Далее выбираем тип импортируемого файла (например, Microsoft Excel), находим нужный файл и нажимаем Импорт. Можно произвести импорт другим способом: в окне базы данных щелкнуть на свободном месте правой кнопкой мыши и в появившемся окне выбрать строку Импорт.
Импортировать данные можно только в таблицы – в новые или уже существующие.
Связывание
Если при импорте данные из исходного файла копировались в новую или существующую таблицу, то при связывании Access просто получает доступ к данным другой таблицы, при этом данные по-прежнему хранятся в исходном файле. Сначала данные в присоединенной таблице доступны только для чтения. Для того чтобы данные в присоединенной таблице можно было не только просматривать, но и изменять, эта таблица обязательно должна иметь ключевое поле.
Чтобы присоединить внешнюю таблицу к базе данных, выберите команду Файл, Внешние данные, Связь с таблицами (File, Get External Data, Link Tables). Появится диалоговое окно Связь, в котором нужно выбрать тип связываемого файла и путь к нему. Возможные типы файлов для связывания те же, что и для импорта.
Также существует другой способ создания связи: в окне базы данных щелкнуть правой кнопкой мыши на свободной месте и в появившемся меню выбрать строку Связь с таблицами.
Если изменить имя или месторасположение присоединенного файла, то для нормальной работы с этим файлом связь нужно обновить. Обновить связь с таблицей можно двумя способами.
Первый способ состоит в том, что нужно просто удалить присоединенную таблицу из базы данных, а потом присоединить вновь.
Второй способ обновления связи с внешней таблицей — это использование Диспетчера связанных таблиц (Linked Table Manager). Чтобы воспользоваться Диспетчером связанных таблиц: выберите команду меню Сервис, Служебные программы, Диспетчер связанных таблиц (Tools, Database Utilities, Linked Table Manager).
Экспорт данных
Экспортировать данные из Access можно в файлы различных типов (уже перечисленные + текстовый формат RTF). Экспортировать данные Access можно не только из таблицы, но и из запроса. Можно экспортировать не только данные, но и объекты Access — формы, отчеты, макросы. Для экспорта данных следует: 1) в окне базы данных выбрать экспортируемый объект (например, нужную таблицу), выделив его мышкой; 2) выбрать в строке меню команду Файл и в раскрывшемся меню выбрать Экспорт(или щелкнуть на нужном объекте правой кнопкой мыши и в появившемся окне выбрать Экспорт); 3) В окне появившемся окне Экспорт объектавыбрать тип файла и путь к нему, куда будет происходит экспорт.
Access позволяет быстро экспортировать данные из таблицы в файл Microsoft Excel. Выполняется это с помощью команды Связи с Office (Office Links). При этом можно экспортировать как всю таблицу, так и ее часть. Если нужно экспортировать всю таблицу, выделите эту таблицу в списке таблиц окна базы данных и и выберите Сервис ->Связи с Office->Анализ в Microsoft Office Excel (или нажмите стрелку справа от кнопки Связи с Office на панели инструментов). Access создаст новый файл XLS, скопирует в него данные из выделенной таблицы, запустит приложение Excel и откроет в нем этот файл. Аналогично можно экспортировать только часть таблицы Access, например подмножество строк или даже диапазон ячеек. Для этого необходимо открыть таблицу в режиме Таблицы, выбрать подмножество строк, например с помощью фильтра, или выделить диапазон ячеек, затем выполнить команду Сервис, Связи с Office, Анализ в MS Excel (Tools, Office Links, Analyze It with Microsoft Excel), и выбранные данные будут экспортированы в Excel.
Практикум: «Обмен данными между Microsoft Access и Microsoft Excel»
Цель работы:научиться производить обмен данными между MS Access и MS Excel. Данные будут храниться в базе данных Access, а расчеты проводиться в Excel.
Задача:расчет месячной премии сотрудников банка.
1)Запустите MS Access. Создайте новую или откройте уже существующую базу данных. Создайте таблицу «Сотрудники». Она должна иметь следующую структуру:
Занесите в таблицу данные сотрудников (5-10 человек). Сохраните и закройте таблицу.
2) Перейдите к окну базы данных. Выделите левой кнопкой мыши таблицу «Сотрудники» и произведите быстрый экспорт в MS Excel (Сервис->Связи с Office->Анализ в Microsoft Office Excel).
3) В открывшемся файле Excel вы увидите 5 заполненных столбцов (Код сотрудника, ФИО, Должность, Телефон, Зарплата) с введенными вами данными. Дополните таблицу следующими столбцами: Премия, Суммарный доход, Средняя зарплата и Ставка (рис.1).
4) В ячейке H2 рассчитайте среднюю зарплату сотрудников. В ячейках I2 и I3 введите значения процента премии: 20% и 10% соответственно.
Премия сотрудников (ячейки F2:F6) рассчитывается по формуле:
«Если зарплата сотрудника Внешние данные->Импорт. В строке Тип Файлов открывшегося окна Импорт выберите Microsoft Excel и найдите созданный вами файл «Сотрудники». Нажмите кнопку Импорт. Откроется окно «Импорт электронной таблицы» (рис.2), в котором должен стоять флажок «Первая строка содержит заголовки столбцов».
Нажмите далее. В следующем окне выберите пункт Данные необходимо сохранить в новой таблице.Нажмите Далее. Появится окно, позволяющее описывать каждое поле создаваемой таблицы. Щелкните на столбце Код сотрудника и в поле Индекс выберите Да (Совпадения не допускаются). (рис. 3) Нажмите Далее. В следующем окне выберите пункт Определить ключ (рис.4). Проверьте, что Access выбрал столбец Код сотрудника. Щелкните Далее.
В следующем окне в строке «Импорт в таблицу» наберите: Сотрудники (или оставьте без изменений, если это уже сделал Access). Нажмите готово. На вопрос «Переписать существующую таблицу или запрос?» ответьте Да.
Откройте таблицу Сотрудники. Она должна содержать новые столбцы: Премия, Суммарный доход, Средняя зарплата и Ставка (рис. 5).
6) Однако импорт данных обладает следующим недостатком: в случае каких-либо изменений (изменение размеров зарплаты сотрудников или изменение ставок премии) все вышеперечисленные действия придется повторить. Чтобы этого избежать, гораздо удобнее произвести процедуру связывания, т.е. связать экселевский файл «Сотрудники» с базой данных Access. Для этого вернемся к окну базы данных. Выберите Файл->Внешние данные->Связь с таблицами (или щелкните правой кнопкой мыши на свободном месте и в появившемся меню выберите строку «Связь с таблицами»). В открывшемся окне Связь выберите Тип файлов Microsoft Excel,найдите файл «Сотрудники» и нажмите кнопку Связь.В следующем окне выберите объект Листыи щелкните Далее. Следуйте указаниям Мастера, в последнем окне выберите имя связанной таблицы (например, «СотрудникиExc») и нажмите Готово. Откройте связанную таблицу и попробуйте изменить в ней данные, например, удалить какого-либо нового сотрудника. Если подобное действие не сработает, перейдите в Конструктор и задайте ключевое поле «Код сотрудника». Сохраните изменения и вновь перейдите в режим таблицы. Попробуйте произвести изменения в таблице. Сохраните произведенные изменения и закройте таблицу.
Теперь все изменения в экселевском файле «Сотрудники» будут автоматически отражаться в связанной таблице «СотрудникиExc» базы данных Access.
detector