Формы excel как в access

Skip to content

На чтение 2 мин. Просмотров 1.8k.

Что делает макрос: В некоторых случаях, вам или вашим клиентам, возможно, потребуется переключить фокус на форму доступа. Этот пример демонстрирует, как вы можете открыть форму Access из Excel.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как этот код работает
  4. Как использовать

Как макрос работает

С помощью этого макроса, вы указываете Excel базу данных Access и вызываете определенную форму доступа, чтобы открыть.
Для автоматизации доступа, необходимо установить ссылку на библиотеку объектов Microsoft Access. Для этого откройте VBA в Excel и выберите Tools➜References. Откроется диалоговое окно «References». Прокрутите вниз, пока вы найдите запись Microsoft Access XX Object Library, где XX — это ваша версия Access. Выберите флажок рядом с записью.

Код макроса

Sub OtkritFormuAccess()
'Шаг 1: Объявляем переменные
Dim AC As Access.Application

'Шаг 2: Запустите Access и откройте целевую базу данных
Set AC = New Access.Application
AC.OpenCurrentDatabase _
("C:TempYourAccessDatabase.accdb")

'Шаг 3: Откройте целевую форму и сделайте доступ видимым
With AC
.DoCmd.OpenForm "MainForm", acNormal
.Visible = True
End With
End Sub

Как этот код работает

  1. объявляем переменную объекта AC. Эта переменная открывает библиотеку приложений баз данных Access.
  2. используем переменную AC, чтобы открыть базу данных Microsoft Access, где находятся целевые формы.
  3. открываем соответствующую форму. Форма Access открывается в новом окне Microsoft Access. Обратите внимание, что вы не закрывали базу данных в последней строке шага 3.

Как использовать

Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.

 

Petr

Пользователь

Сообщений: 61
Регистрация: 01.01.1970

здравствуйте!  
а возможно ли в excel сделать форму для ввода данных как в access?  
ну чтобы появлялось окошко с определенными полями для заполнения и затем данные помещались в лист.  
если можно покажите пример пожалуйста

 
 

Павел, что-то не срабатывает форма — выдает ошибку

 
 

Petr

Пользователь

Сообщений: 61
Регистрация: 01.01.1970

Уважаемый Pavel55!  
немного изменил Ваш пример под себя.    
подскажите как сделать чтоб если данные из поля 1 уже есть в списке то выводилось бы предупреждение с предложением заменить старые или добавить новые данные.

 

ZVI

Пользователь

Сообщений: 4328
Регистрация: 23.12.2012

—  
В Excel есть встроенная форма для редактирования данных, из VBA вызывается так:  

  Sub ФормаВводаДанных()  
On Error Resume Next  
ActiveSheet.ShowDataForm  
If Err <> 0 Then MsgBox «Нет данных», vbInformation, «Форма ввода данных»  
End Sub  
—  
ZVI

 
 

Petr

Пользователь

Сообщений: 61
Регистрация: 01.01.1970

 

Petr

Пользователь

Сообщений: 61
Регистрация: 01.01.1970

{quote}{login=Pavel55}{date=01.04.2008 01:58}{thema=}{post}Посмотрите пример{/post}{/quote}  

  Уважаемый Павел!  
возникло еще пара вопросов.  
как в последнем вашем примере сделать, чтобы появляющееся окно формы не блокировало просмотр остальных книг и листов excel?  
и что нужно дописать в код, чтобы данные копировались в строго определенный лист, а не в тот в котором форма активна в данный момент.

 

Посмотрите пример.  

  P.S. У меня такое чувство, что вы удаляете записи из таблицы каким-то странным способом. Например, нажав пробел на ячейке, если это так, то таким образом удалять информацию нельзя! Информация из ячеек надо удалять так:  

  1) Выделяете мышкой область ячеек на листе  
2) Нажимаете кнопку Delete на клавиатуре (либо меню Правка — Очистить)

 

Petr

Пользователь

Сообщений: 61
Регистрация: 01.01.1970

возможно это произошло случайно. обычно я удаляю информацию из ячеек как Вы и написали.  
и еще один, надеюсь последний в этом топике, вопрос:)  
помогите добавить третью кнопочку к «да — заменить» и «нет — добавить» еще одну «отмена»  
спасибо Вам за помощь!

 
 

Petr

Пользователь

Сообщений: 61
Регистрация: 01.01.1970

Pavel55, еще раз спасибо!

 

Kegrus

Пользователь

Сообщений: 3
Регистрация: 01.01.1970

Как сделать в форме ввода данных раскрывающийся список:  
Примеру: 20 объектов с собственными названиями и номерами(чтобы постоянно не писать навание объектов в полях, а выбирать из списка).  

  P/S И как добавить новый объект в список формы данных

 

Подскажите, а где указывается в настройках полей, в какую ячейку заносить данные?

 

Kegrus  
(Как сделать в форме ввода данных раскрывающийся список:  
Примеру: 20 объектов с собственными названиями и номерами(чтобы постоянно не писать навание объектов в полях, а выбирать из списка).  

  P/S И как добавить новый объект в список формы данных)  
См. файл

 

В развитие задачи Kegrus-а. Надо чтобы в ComboBox отображались 2 столбца: №пп ответа и сам ответ. Например:  
1 заявка  
2 договор  
3 реализация  
4 снижение  
5 увеличение  
6 расторжение  
А в соответствующие ячейки Excel заносился только №пп…

 

Юрий М

Модератор

Сообщений: 60588
Регистрация: 14.09.2012

Контакты см. в профиле

 

Ээээ, Юрий. Прикреплен файл с 2 столбцами на листе. Никакими ComboBox-ами там и не пахнет :)

 

Юрий М

Модератор

Сообщений: 60588
Регистрация: 14.09.2012

Контакты см. в профиле

Я не знал, что Вы не сможете запустить кнопку из VBE. Вот Вам с кнопочкой :-)

 

Сглупил. Просто кнопка запуска макроса не вынесена на Лист. Изучаю решение. Спасибо

 

Огромное спасибо! Я уж учебники перечитал, поисковики изнасиловал. А здесь, оказывается, какие отзывчивые люди обитают! Респект

 

Serge_ASB

Пользователь

Сообщений: 8
Регистрация: 01.01.1970

{quote}{login=Pavel55}{date=01.04.2008 12:22}{thema=}{post}Смотрите пример{/post}{/quote}  
Понравилась форма.  
У меня идея наподобие. В таблице я ее в целом воплотил. Только вот созданием форм никогда в Excel не занимался. Посему интересуюсь.  
Расскажите (или скажите где взять) инфо по поводу — как рисовать саму форму и как прикручивать на элементы управления «источник информации» и ячейку-получатель.    
Буду рад комментариям.

 

Юрий М

Модератор

Сообщений: 60588
Регистрация: 14.09.2012

Контакты см. в профиле

#24

11.02.2010 12:19:06

Список доступной для скачивания литературы и ссылки на ресурсы можно найти в «Копилке». Загляните в Правила — там всё есть.

  1. Что делает макрос
  2. Код макроса
  3. Как работает макрос
  4. Как использовать
  5. Скачать файл

Ссылка на это место страницы:
#zadacha

Этот макрос демонстрирует, как вы можете открыть форму Access из Excel.

С помощью этого макроса, вы указываете Excel базу данных Access и вызываете определенную форму доступа, чтобы открыть.

Для автоматизации доступа, необходимо установить ссылку на библиотеку объектов Microsoft Access. Для этого откройте VBA в Excel и выберите Tools➜References. Откроется диалоговое окно «References». Прокрутите вниз, пока вы найдите запись Microsoft Access XX Object Library, где XX — это ваша версия Access. Поставьте флажок рядом с записью. 

Ссылка на это место страницы:
#formula

  1. Sub OtkritFormuAccess()
  2. Dim AC As Access.Application  
  3. Set AC = New Access.Application
  4. AC.OpenCurrentDatabase _
  5. ("C:TempYourAccessDatabase.accdb")  
  6. With AC
  7. .DoCmd.OpenForm "MainForm", acNormal
  8. .Visible = True
  9. End With
  10. End Sub

Ссылка на это место страницы:
#kak

1. Объявляем переменную объекта AC. Эта переменная открывает библиотеку приложений баз данных Access. 

2. Используем переменную AC, чтобы открыть базу данных Microsoft Access, где находятся целевые формы. 

3. Открываем соответствующую форму. Форма Access открывается в новом окне Microsoft Access. Обратите внимание, что макрос не закрывает базу данных в последней строке шага 3. 

Ссылка на это место страницы:
#touse

Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:

1. Активируйте редактор Visual Basic, нажав ALT + F11
2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта. 
3. Выберите Insert➜Module
4. Введите или вставьте код во вновь созданном модуле. 

Ссылка на это место страницы:
#file

Файлы статей доступны только зарегистрированным пользователям.

1. Введите свою почту

2. Нажмите Зарегистрироваться

3. Обновите страницу
Вместо этого блока появится ссылка для скачивания материалов.

Привет! Меня зовут Дмитрий. С 2014 года Microsoft Cretified Trainer. Вместе с командой управляем этим сайтом. Наша цель — помочь вам эффективнее работать в Excel. 

Изучайте наши статьи с примерами формул, сводных таблиц, условного форматирования, диаграмм и макросов. Записывайтесь на наши курсы или заказывайте обучение в корпоративном формате.

Подписывайтесь на нас в соц.сетях:

Содержание:

1.
О продукте


Возможности Microsoft Excel


2.
Новые ключевые
возможности Microsoft Excel

3. Дополнительные новые
возможности Microsoft Excel


4. 
Специальные
возможности в Microsoft Excel


Технические характеристики и компоненты
Microsoft Excel


5.
Технические характеристики и ограничения Microsoft Excel

6. Компоненты,
устанавливаемые вместе с Microsoft Excel


Настройка Microsoft Excel


7. Настройка элементов
окна программы

8. Изменение
значений по умолчанию и настроек

9.  Настройка панелей инструментов и меню

10. Настройка
параметров запуска Microsoft Excel

11. Использование надстроек и дополнительных компонентов

12.

Разрешение вопросов, связанных с
настройкой приложения Microsoft Excel


Управление и печать файлов


13. Создание и
открытие книг

14.
Поиск и предварительный просмотр файлов

15.
Настройка свойств
файлов

16. Печать
файлов

17. Сохранение и закрытие файлов

18.
Преобразование
файлов в формат
Microsoft
Excel
и обратно

19. Работа с
шаблонами

20. Разрешение вопросов, связанных с управлением и
печатью файлов



Работа с книгами и листами


21.
Управление
листами

22. Размещение окон и просмотр листов

23.
Сохранение настроек
отображения и печати как представления

24.
Разрешение вопросов
при работе с книгами и листами


Работа с
данными на листах


25.
Ввод данных

26.
Выбор данных

27.
Редактирование данных на
листе

28.
Копирование и перемещение
данных

29.
Проверка орфографии

30.
Использование буфера обмена
Microsoft Office

31.
Форматирование листов

32.
Использование границ и
заливки

33.
Использование условных
форматов

34.
Изменение размера ячеек и
положения текста

35.
Использование числовых
форматов

36.
Использование стилей

37.
Работа с текстом и данными

38.
Отбор

39.
Сортировка

40.
Проверка записей в ячейках

41.
Разрешение вопросов,
связанных с данными на листах


Использование
Microsoft Excel  при работе в
Интернете


42.
Публикация данных
Microsoft Excel
в Интернете

43.
Загрузка и анализ данных из
Интернета

44.
Работа с гиперссылками

45.
Работа с веб-папками

46.
Автоматизация содержимого
веб-страниц

47.
Работа с файлами и узлами
FTP

48.
Разрешение вопросов

по использованию
Microsoft Excel
при работе в
Интернете


Импорт данных


49.
Импорт данных

50.
Работа с данными
OLAP

51.
Создание и выполнение
запросов

52.
Настройка
Microsoft Query
и источников
данных

53.
Работа с внешними данными на
листе

54.
Разрешение вопросов,
связанных с внешними данными


Анализ и
управление данными


55.
Автоматический расчёт
итоговых данных

56.
Структуризация данных

57.
Консолидация данных

58.
Анализ данных с помощью
свободных таблиц и отчётов

59.
Создание и удаление
свободных таблиц и отчётов

60.
Настройка вида и разметки
свободных таблиц

61.
Печать свободных таблиц

62.
Создание свободных таблиц с
помощью групповых операций и формул

63.
Извлечение и обновление
данных

64.
Выполнение анализов
«что-если» для данных на листах

65.
Анализ таблиц данных

66.
Процедура поиска решения

67.
Работа со сценариями

68.
Разрешение вопросов,
связанных с анализом и управлением
данными


Создание и
использование форм


69.
Создание и использование форм

70.
Создание форм

71.
Использование форм

72.
Разрешение вопросов,
связанных с созданием и использованием
форм


Создание и
исправление формул


73.
Создание формул

74.
Использование ссылок

75.
Формулы массивов

76.
Имена и заголовки

77.
Условные формулы

78.
Формулы даты и времени

79.
Математические формулы

80.
Текстовые формулы

81.
Формулы сравнения

82.
Финансовые формулы

83.
Создание связей

84.
Управление расчётами

85.
Исправление формул

86.
Работа с Евро

87.
Разрешение вопросов,
связанных с созданием и исправлением
формул


Работа с
функциями


88.
Справка по функциям

89.
Внешние функции

90.
Инженерные функции

91.
Информационные функции

92.
Логические функции

93.
Математические функции

94.
Статистические функции

95.
Текстовые функции и функции
обработки данных

96.
Финансовые функции

97.
Функции баз данных

98.
Функции даты и времени

99.
Функции просмотра


Работа с
рисунками и диаграммами


100.
Работа с рисунками и
диаграммами

101.
Создание фигур, линий,
полулиний и других графический объектов

102.
Форматирование графических
объектов

103.
Добавление текста и особых
текстовых эффектов

104.
Группировка, выравнивание и
перемещение графических объектов

105.
Работа с импортированными
рисунками и картинками

106.
Работа со схемами и
организационными диаграммами

107.
Разрешение вопросов,
связанных с графическими объектами и
рисунками


Работа с
диаграммами


108.
Создание диаграмм

109.
Отображение диаграмм

110.
Работа с маркерами данных,
подписями значений и текстом

111.
Редактирование данных в
диаграмме

112.
Планки погрешностей и линии
тренда

113.
разрешение вопросов ,
связанных с диаграммами


Система
безопасности


114.
Защита от вирусов

115.
Цифровые подписи и
сертификаты

116.
Защита книг и листов

117.
Обеспечение
конфиденциальности

118.
Разрешение вопросов,
связанных с безопасностью


Совместная
работа


119.
Работа с общими книгами

120.
Отправка данных на рецензию

121.
Отслеживание изменений

122.
Пометка и просмотр изменений

123.
Слияние книг

124.
Работа с примечаниями

125.
Работа с обсуждениями

126.
Проведение собраний по
сети

127.
Взаимодействие
Microsoft Excel
и Lotus Notes

128.
Разрешение вопросов,
связанных с совместной работой


Доступ к данным
совместно с другими программами


129.
Доступ к данным совместно с
другими программами

130.
Обмен данными между
Microsoft Excel,
Microsoft Word
и
Microsoft PowerPoint

131.

Обмен данными между
Microsoft Excel
и Microsoft Access

132.
Взаимодействие между
Microsoft Excel 
Microsoft outlook

133.
Разрешение вопросов,
связанных с совместным доступом к данным


Рукописный текст
и речь


134.
Распознание рукописного
текста и речи

135.
Обработка рукописного текста

136.
Распознавание рукописного
текста на восточно-азиатских языках

137.
Обработка речи

138.
Разрешение вопросов,
связанных с распознаванием рукописного
текста и речи


Смарт-теги


139.
Использование смарт-тегов

140.
Разрешение вопросов,
связанных со смарт-тегами


Автоматизация
задач


141.
Работа с макросами

142.
Разрешение вопросов,
связанных с автоматизацией задач

Обмен
данными между Microsoft Excel и Microsoft Access



Работа с данными Microsoft
Access в Microsoft Excel


Копирование данных
Microsoft Access в Microsoft Excel

  • Данные Microsoft
    Access можно скопировать, воспользовавшись режимом таблицы или
    элементом управления страницей доступа к данным, и затем вставить
    эти данные в Microsoft Excel.

  • Кроме того, в
    книге Microsoft Excel можно сохранить данные из таблицы, запроса,
    формы, или отчета Microsoft Access. Данный метод следует
    использовать для создания статических копий больших объемов данных
    Microsoft Access.

Примечание.  
Этот способ используется в случае, если данные в Microsoft Excel не
требуется обновлять каждый раз при изменении базы данных Microsoft
Access.


Перенос в
Microsoft Excel обновляемых данных Microsoft Access

Если требуется
обновить данные в листе при изменении базы данных Microsoft Access,
например обновить ежемесячно отправляемые итоги Microsoft Excel,
содержащие данные за текущий месяц, перенести данные в Microsoft
Excel можно создав запрос или odc-файл. Запрос следует создавать в
случае, если требуется получить данные из нескольких таблиц или
нужно изменить границы получаемых данных. ODC-файл следует
использовать в случае, если требуется получить данные из одной
таблицы в базе данных и при этом извлечь все данные в таблице.
Данные можно вернуть в Microsoft Excel как внешний диапазон данных
или отчет сводной таблицы, причем в обоих случаях доступно
обновление.

Использование Microsoft Access
для управления данными Microsoft Excel

Связывание данных
Microsoft Excel с базой данных Microsoft Access
.   Список
Microsoft Excel можно поместить в базу данных Microsoft Access в
виде таблицы. Данный подход следует использовать в случае, если
планируется продолжать ведение списка в Microsoft Excel и при этом
требуется, чтобы список был доступен в Microsoft Access. Данные в
связанном списке Microsoft Excel можно просматривать и обновлять
непосредственно в базе данных Microsoft Access. Создавать данный тип
связи можно непосредственно в базе данных Microsoft Access, но не в
Microsoft Excel. Для получения дополнительных сведений обратитесь к
справочной системе Microsoft Access.

Импорт данных
Microsoft Excel в базу данных Microsoft Access
.   Если при
работе в Microsoft Access в базу данных требуется скопировать данные
из книги Microsoft Excel, можно импортировать эти данные в Microsoft
Access. Данный метод следует использовать для переноса копии
небольшого объема данных, которые предполагается и дальше
поддерживать в Microsoft Excel, в существующую базу данных Microsoft
Access без необходимости повторного ввода.

Если в Microsoft
Excel установлена надстройка связей с Microsoft Access, можно
использовать некоторые возможности Microsoft Access для сохранения
данных Microsoft Excel. Эта надстройка доступна на веб-узле
Microsoft Office.

Примечание.  
Гиперссылка данного раздела ведет в Интернет. Вы можете вернуться в
справку в любой момент.

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

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

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


Формы для ввода данных

Microsoft Excel предоставляет
следующие типы форм, помогающие вводить данные в списки.

Формы

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

Используйте форму, если
достаточно простого перечисления столбцов и не требуются более
сложные или настраиваемые возможности. Форма может облегчить ввод
данных, например, когда имеется широкий список, количество столбцов
которого превышает число столбцов, которое может одновременно
отображаться на экране.

Формы Microsoft Access

Если установлено
приложение Microsoft Access, надстройка Excel AccessLinks позволяет
создавать формы Microsoft Access для работы с данными в списке
Microsoft Excel. Используйте мастер формы Access для создания
настраиваемой формы, после чего используйте форму для ввода, поиска
и удаления хранящихся на листе данных. Эта программа надстройки
доступна на веб-узле Microsoft Office.

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

Формы на листе

Если требуется
создать сложную или специализированную форму для ввода данных,
следует создать лист или шаблон для использования его в качестве
формы и затем настроить лист формы в соответствии с необходимыми
требованиями. Например, можно создать форму отчета о расходах,
которая будет заполняться в электронном виде или в виде печатных
копий.

Этот способ
используется в случае, если для настройки форм требуется
максимальная гибкость. Формы на листе особенно удобны, если
требуется получить отдельные печатные копии формы. Если также
требуется сохранять данные из форм в списке Microsoft Excel, можно
скопировать данные в список вручную из каждой копии формы, или
воспользоваться для создания и ведения списка мастером шаблонов,
либо разработать приложение для ввода данных с помощью редактора
Microsoft Visual Basic.

Формы мастера шаблонов

Можно создать шаблон
формы в Microsoft Excel и затем использовать мастер шаблонов для
создания отдельного списка Microsoft Excel для сбора данных,
вводимых в формы, созданные на основе шаблона. Этот метод
используется, если, например, копия формы будет заполняться
несколькими пользователями.

Мастер шаблонов
следует использовать, если требуется как копирование книги каждого
заполненного экземпляра формы, так и отдельная запись всех данных.
При этом Microsoft Excel автоматически осуществляет ведение списка и
сохраняет копию каждого заполненного экземпляра формы в отдельной
книге. Эта надстройка доступна на веб-узле Microsoft Office.


Копирование данных
Microsoft Access в Microsoft Excel

Определите объем данных, с
которым потребуется работать: 1) вся таблица, запрос либо все данные
формы или отчета; 2) только некоторые записи.

Выполните одно из следующих
действий.

Скопируйте все данные в
Microsoft Excel

  1. В окне базы данных Microsoft
    Access выберите таблицу, запрос, форму или отчет, с которым
    требуется работать в Microsoft Excel.

  2. В меню
    Сервис укажите на пункт
    Связи с Office и выберите
    команду Анализ в
    Microsoft Excel
    .

    Таблица, запрос, форма или
    отчет Microsoft Access будет сохранен в виде книги Microsoft Excel
    (файл с расширением XLS), которая затем будет открыта в Microsoft
    Excel. Файл с именем таблицы, запроса или другого объекта базы
    данных сохраняется в текущей рабочей папке.

Примечание.   При
наличии основной формы и одной или нескольких вспомогательных форм
либо основного отчета и одного или нескольких вспомогательных
отчетов в книге сохраняются только данные основной формы или отчета
Microsoft Access.

Скопируйте выделенные записи в
Microsoft Excel

  1. В Microsoft Access выберите
    таблицу, запрос или форму с записями, которые требуется
    скопировать.

  2. В меню
    Вид выберите команду
    Режим таблицы.

  3. Выделите записи, которые
    необходимо скопировать.

    Если требуется выделить
    несколько соседних столбцов, перетащите указатель через их
    заголовки.

  4. Нажмите кнопку
    Копировать .

  5. Переключитесь в окно
    Microsoft Excel.

  6. Щелкните в левом верхнем
    углу области листа, в которую требуется поместить имя первого
    поля.

    Чтобы скопированные записи
    не заменили имеющиеся записи, ниже и правее выбранной ячейки не
    должно быть никаких данных.

  7. Нажмите кнопку
    Вставить .

  8. После вставки данных на лист
    может потребоваться изменение высоты соответствующих строк.  Для
    этого выполните одно из следующих действий:

    • выделите строки, выберите
      в меню Формат команду
      Ячейки, откройте вкладку
      Выравнивание, а затем снимите
      флажок переносить по словам;

    • в меню
      Формат укажите на пункт
      Строка, а затем выберите команду
      Автоподбор высоты.


Импорт данных
Microsoft Excel в базу данных Microsoft Access

  1. Убедитесь, что данные
    Microsoft Excel представлены в формате списка: первая строка
    каждого столбца содержит подпись, остальные строки — однотипные
    данные, пустые строки или столбцы в списке отсутствуют.

  2. Закройте книгу Microsoft
    Excel, содержащую данные, которые предполагается использовать в
    Microsoft Access.

  3. В Microsoft Access откройте
    базу данных, в которую требуется скопировать данные Microsoft
    Excel.

  4. В меню
    Файл Microsoft Access выберите пункт
    Внешние данные и
    выполните команду Импорт.

  5. В диалоговом окне
    Импорт выберите элемент
    Microsoft Excel в списке
    Тип файлов.

  6. В списке
    Папка выберите папку, содержащую
    импортируемый файл, и затем дважды щелкните его.

  7. Следуйте инструкциям мастера
    импорта таблиц.

    Для получения дополнительных
    сведений об этом мастере и Microsoft Access установите флажок
    Вывести
    справку после завершения работы мастера
    .

Учимся работать с базами данных Access из макросов Excel

Кратко о структуре базы данных. База состоит из таблиц. Таблица — из строк. Строка — из полей. В полях могут храниться данные разных форматов. Форматы определяются в момент создания таблицы. Создать базу и таблицы в ней можно в Access, а можно и средствами макроса прямо из Excel.

Чтобы Access смог обращаться к базам Access, нужно подключить библиотеку DAO. Для этого в редакторе Visual Basic выбираем меню «Tools->References», открывается окошко, в котором нужно поставить галочку напротив Microsoft DAO 3.6 Object Library.

Теперь делаем так:

‘Объявляем переменные
Dim dbs As DAO.Database ‘База данных
Dim rs As DAO.Recordset ‘Запрос к базе данных

‘Открываем базу
Set dbs = DAO.OpenDatabase(«c:database.mdb»)
‘Выполняем запрос к базе данных
Set rs = dbs.OpenRecordset(«SELECT * FROM тбл_тов WHERE ID_тов>2»)


Тут объясню подробнее. Запросы к базе выполняются на языке SQL. Пока рассмотрим только одну команду этого языка — SELECT. Эта команда выбирает из таблицы строки, удовлетворяющие заданному условию. Там, где у нас стоит звездочка, можно указать названия полей, которые будут присутствовать в ответе. В нашем случае будет возвращаться вся строка полностью. После слова FROM идет название таблицы, из которой идет выбор строк. Таблиц в базе может быть много. В нашем случае это тбл_тов — таблица товаров. После слова WHERE указывается условие, по которому отбираются строки. У нас условие такое: если поле ID_тов > 2, то строка включается в ответ. Ответ получается в переменной rs, которая имеет тип Recordset. Recordset — это временная таблица, сформированная из строк, удовлетворяющих условию запроса.

‘Если ничего не найдено — выдаем сообщение и выходим

If RS.RecordCount = 0 Then

    MsgBox («По вашему запросу ничего не найдено»)

    Exit Sub

End If

Do While Not RS.EOF    ‘цикл выполняется пока не достигнута последняя строка в таблице ответа

    ‘Присваиваем ячейкам таблицы значения из базы

    Cells(i, 2).Value = RS.Fields(«назв_тов»)

    Cells(i, 1).Value = RS.Fields(«ID_тов»)

    i = i + 1

    ‘переходим к следующей строке во временной таблице ответа

    RS.MoveNext

Loop

‘Закрываем временную таблицу

RS.Close

‘Очищаем память. Если этого не сделать, то таблица так и останется в памяти до закрытия рабочей книги.

Set RS = Nothing

‘Закрываем базу

dbs.Close

‘Очищаем память

Set dbs = Nothing

24 / 8 / 17

Регистрация: 22.12.2015

Сообщений: 2,099

1

29.02.2016, 19:37. Показов 1022. Ответов 6


Студворк — интернет-сервис помощи студентам

Лаб1_Вар1.pdf
На каком языке программирования это делается?
Какие функции и компоненты задействовать,…

Интеграция приложений MS Office.
Импортирование данных из Access в рабочий лист Excel

Задание 1. Выгрузка данных по условию
Написать программу, позволяющую пользователю получить доступ к информации из БД о
сотрудниках предприятия с возможностью дальнейшей обработки этой информации средствами MS Excel.
Данные о сотрудниках содержатся в базе данных Access (файл прилагается к лаб. работе).
При открытии рабочей книги Excel пользователь получает доступ к форме с полями для ввода начальных данных – критериев выборки данных из таблицы сотрудников.

Значения по умолчанию для элементов управления приведены на рис.1.
Список критериев сортировки по ФИО (ComboBox1) включает значения: по возрастанию, по убыванию.
Список критериев выборки сотрудников по гендерному признаку (ComboBox2) включает значения: женский, мужской.
Список критериев выборки сотрудников по идентификатору (ComboBox3) содержит значения: чет, нечет.
Список критериев выборки сотрудников по отношению к военной службе (ComboBox4) содержит значения: военнообязанный, не военнообязанный.
Текстовое поле (TextBox) под управлением счетчика (SpinButton) может содержать
количество строк или столбцов (ComboBox5) из таблицы сотрудников, которые нужно выбрать для выгрузки в рабочий лист Excel.

Минимальное значение счетчика не должно быть меньше 1.
Максимальное значение счетчика не должно быть больше количества строк или столбцов, в зависимости от того, что выбрано в соответствующем списке (ComboBox5).
По кнопке «Выгрузить данные» информация из БД выгружается на рабочий лист в соответствии с
выбранным условием фильтрации. Кнопка «Очистить лист» позволяет удалить с рабочего листа

Миниатюры

Как создать форму excel для доступа к бд  access?
 



0



547 / 274 / 50

Регистрация: 03.04.2015

Сообщений: 926

29.02.2016, 21:30

2

Язык Visual Basic For Application.
Второй вопрос слишком объемный для форума. Есть чудесный ресурс — MSDN.



0



24 / 8 / 17

Регистрация: 22.12.2015

Сообщений: 2,099

29.02.2016, 21:42

 [ТС]

3

вот что у меня получилось.Нужен код кнопки ыгрузить данные

Как создать форму excel для доступа к бд  access?



0



24 / 8 / 17

Регистрация: 22.12.2015

Сообщений: 2,099

29.02.2016, 21:44

 [ТС]

4



0



Эксперт MS Access

7267 / 4469 / 288

Регистрация: 12.08.2011

Сообщений: 13,515

01.03.2016, 02:55

5

Цитата
Сообщение от scherbakovss201
Посмотреть сообщение

вот что у меня получилось.Нужен код кнопки ыгрузить данные

Вы не с той стороны это делаете. Делать нужно в Акцесс по вашему заданию. Если я не прав, то идите на форум по Эксель, там вам помогут.

Не по теме:

В Эксель есть прекрасный инструмент подключения к Акцесс и импорта данных из запроса Акцесс.



0



шапоклякистка 8-го дня

3674 / 2234 / 391

Регистрация: 26.06.2015

Сообщений: 4,647

Записей в блоге: 1

01.03.2016, 04:06

6

Цитата
Сообщение от scherbakovss201
Посмотреть сообщение

При открытии рабочей книги Excel пользователь получает доступ к форме с полями для ввода начальных данных – критериев выборки данных из таблицы сотрудников.

Вот я тоже читала эту фразу, читала — и тоже ощущение таrое, что по заданию форму рисовать и программу писать нужно именно в эксель.

Если да — то в разделах vba и Excel вам помогут быстрее и качественнее.



0



24 / 8 / 17

Регистрация: 22.12.2015

Сообщений: 2,099

01.03.2016, 04:12

 [ТС]

7

уже помогли.Сама таблица Бд пишеться в Акцесс.
Далее проектируеться форма на vba.Третьим шагом яляеться записью макросов на одно конкретное действие в самом екселе.Четвертое -этот код мкроса всталяеться в обработчики нашей проектируемой формы.У меня се заработало.



0



Примечание: Microsoft Access не поддерживает импорт данных Excel с примененной меткой конфиденциальности. В качестве обходного решения можно удалить метку перед импортом, а затем повторно применить метку после импорта. Дополнительные сведения см. в статье «Применение меток конфиденциальности к файлам и электронной почте в Office».

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

В этой статье приведено подробное описание процедуры импорта или связывания данных Excel с классическими базами данных Access.

В этой статье

  • Общее представление об импорте данных из Excel

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

  • Разрешение вопросов, связанных с отсутствующими и неверными значениями

  • Связывание с данными Excel

  • Разрешение вопросов, связанных со значением #Число! и другими неверными значениями в связанной таблице

Общее представление об импорте данных из Excel

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

Стандартные сценарии импорта данных Excel в Access

  • Опытному пользователю Excel требуется использовать Access для работы с данными. Для этого необходимо переместить данные из листов Excel в одну или несколько новых таблиц Access.

  • В отделе или рабочей группе используется Access, но иногда данные поступают в формате Excel, и их необходимо объединять с базами данных Access. Требуется выполнить импорт полученных листов Excel в базу данных.

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

Первый импорт данных из Excel

  • Сохранить книгу Excel в виде базы данных Access невозможно. В Excel не предусмотрена функция создания базы данных Access с данными Excel.

  • При открытии книги Excel в Access (для этого следует открыть диалоговое окно Открытие файла, выбрать в поле со списком Тип файлов значение Файлы Microsoft Office Excel и выбрать файл) создается ссылка на эту книгу, но данные из нее не импортируются. Связывание с книгой Excel кардинально отличается от импорта листа в базу данных. Дополнительные сведения о связывании см. ниже в разделе Связывание с данными Excel.

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

В этом разделе описано, как подготовиться к операции импорта, выполнить ее и как сохранить параметры импорта в виде спецификации для повторного использования. Помните, что данные можно одновременно импортировать только из одного листа. Импортировать все данные из книги за один раз невозможно.

Подготовка листа

  1. Найдите исходный файл и выделите лист с данными, которые требуется импортировать в Access. Если необходимо импортировать лишь часть данных листа, можно задать именованный диапазон, содержащий только те ячейки, которые требуется импортировать.

    Определение именованного диапазона (необязательно)

    1. Перейдите в Excel и откройте лист, данные из которого нужно импортировать.

    2. Выделите диапазон ячеек, содержащих данные, которые необходимо импортировать.

    3. Щелкните выделенный диапазон правой кнопкой мыши и выберите пункт Имя диапазона или Определить имя.

    4. В диалоговом окне Создание имени укажите имя диапазона в поле Имя и нажмите кнопку ОК.

      Имейте в виду, что в ходе одной операции импорта можно импортировать лишь один лист. Чтобы импортировать данные нескольких листов, операцию импорта следует повторить для каждого листа.

  2. Просмотрите исходные данные и выполните необходимые действия в соответствии с приведенной ниже таблицей.

    Элемент

    Описание

    Число столбцов

    Число исходных столбцов, которые необходимо импортировать, не должно превышать 255, т. к. Access поддерживает не более 255 полей в таблице.

    Пропуск столбцов и строк

    В исходный лист или именованный диапазон рекомендуется включать только те строки и столбцы, которые требуется импортировать.

    Смещ_по_строкам    В ходе операции импорта невозможно фильтровать или пропускать строки.

    Столбцы.    В ходе операции экспорта невозможно пропускать столбцы, если данные добавляются в существующую таблицу.

    Табличный формат

    Убедитесь, что ячейки имеют табличный формат. Если лист или именованный диапазон включает объединенные ячейки, их содержимое помещается в поле, соответствующее крайнему левому столбцу, а другие поля остаются пустыми.

    Пустые столбцы, строки и ячейки

    Удалите все лишние пустые столбцы и строки из листа или диапазона. При наличии пустых ячеек добавьте в них отсутствующие данные. Если планируется добавлять записи к существующей таблице, убедитесь, что соответствующие поля таблицы допускают использование пустых (отсутствующих или неизвестных) значений. Поле допускает использование пустых значений, если свойство Обязательное поле (Required) имеет значение Нет, а свойство Условие на значение (ValidationRule) не запрещает пустые значения.

    Значения ошибок

    Если одна или несколько ячеек на листе или в диапазоне содержат значения ошибок, например #ЧИСЛО или #ДЕЛ, исправьте эти значения до начала операции импорта. Если исходный лист или диапазон содержит значения ошибок, соответствующее поле таблицы Access остается пустым. Дополнительные сведения о способах исправления таких ошибок см. ниже в разделе Разрешение вопросов, связанных с отсутствующими и неверными значениями.

    Тип данных

    Чтобы избежать ошибок во время импорта, убедитесь, что каждый исходный столбец содержит один и тот же тип данных в каждой строке. Access сканирует первые восемь строк источника, чтобы определить тип данных полей в таблице. Настоятельно рекомендуется убедиться, что первые восемь строк источника не смешивают значения различных типов данных ни в одной из столбцов. В противном случае Access может не назначить столбцу правильный тип данных.

    Рекомендуется также отформатировать все исходные столбцы в Excel и назначить им определенный формат данных перед началом операции импорта. Форматирование является необходимым, если столбец содержит значения с различными типами данных. Например, столбец «Номер рейса» может содержать числовые и текстовые значения, такие как 871, AA90 и 171. Чтобы исключить отсутствующие или неверные значения, выполните указанные ниже действия.

    1. Щелкните заголовок столбца правой кнопкой мыши и выберите пункт Формат ячеек.

    2. На вкладке Числовой в группе Категория выберите формат. Для столбца «Номер рейса» лучше выбрать значение Текстовый.

    3. Нажмите кнопку ОК.

    Если исходные столбцы отформатированы, но все же содержат смешанные значения в строках, следующих за восьмой строкой, в ходе операции импорта значения могут быть пропущены или неправильно преобразованы. Сведения о разрешении этих вопросов см. в разделе Разрешение вопросов, связанных с отсутствующими и неверными значениями.

    Первая строка

    Если первая строка листа или именованного диапазона содержит имена столбцов, в Access можно указать, что данные первой строки должны рассматриваться в ходе операции импорта как имена полей. Если исходный лист или диапазон не содержит имен, рекомендуется добавить их в исходные данные до операции импорта.

    Примечание: Если планируется добавить данные в существующую таблицу, убедитесь, что имя каждого столбца в точности соответствует имени поля. Если имя столбца отличается от имени соответствующего поля в таблице, операция импорта завершится неудачей. Чтобы просмотреть имена полей, откройте таблицу в Access в режиме конструктора.

  3. Закройте исходную книгу, если она открыта. Если исходный файл остается открытым в ходе операции импорта, могут возникнуть ошибки преобразования данных.

Подготовка конечной базы данных

  1. Откройте базу данных Access, в которой будут храниться импортируемые данные. Убедитесь, что база данных доступна не только для чтения и что есть права на ее изменение.

    -или-

    Если ни одна из существующих баз данных не подходит для хранения импортируемых данных, создайте пустую базу данных. Для этого выполните указанные ниже действия.

    Откройте вкладку Файл, нажмите кнопку Создать и выберите пункт Пустая база данных.

  2. Перед началом операции импорта следует определить, в какой таблице будут храниться данные: в новой или существующей.

    Создание новой таблицы.    Если необходимо сохранить данные в новой таблице, в Access создается таблица, в которую добавляются импортируемые данные. Если таблица с указанным именем уже существует, содержимое существующей таблицы перезаписывается импортируемыми данными.

    Добавление в существующую таблицу.    При добавлении данных в существующую таблицу строки из листа Excel добавляются в указанную таблицу.

    Следует помнить, что ошибки в ходе операции добавления зачастую объясняются тем, что исходные данные не соответствуют структуре и параметрам полей в конечной таблице. Чтобы избежать таких ошибок, откройте таблицу в режиме конструктора и проверьте указанные ниже параметры.

    • Первая строка.    Если первая строка исходного листа или диапазона не содержит заголовки столбцов, убедитесь, что расположение и тип данных каждого столбца соответствуют нужному полю таблицы. Если же первая строка содержит заголовки столбцов, совпадение порядка следования столбцов и полей необязательно, но имя и тип данных каждого столбца должны в точности совпадать с именем и типом данных соответствующего поля.

    • Отсутствующие или лишние поля.    Если одно или несколько полей исходного листа отсутствуют в конечной таблице, их следует добавить до начала операции импорта. Если же таблица содержит поля, которые отсутствуют в исходном файле, их не требуется удалять из таблицы при условии, что они допускают использование пустых значений.

      Совет: Поле допускает использование пустых значений, если его свойство Обязательное поле (Required) имеет значение Нет, а свойство Условие на значение (ValidationRule) не запрещает пустые значения.

    • Первичный ключ.    Если таблица содержит поле первичного ключа, исходный лист или диапазон должен содержать столбец, содержащий значения, совместимые с полем первичного ключа, а импортированные значения ключа должны быть уникальными. Если импортируемая запись содержит значение первичного ключа, которое уже существует в таблице, отображается сообщение об ошибке.

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

      Для выполнения операции импорта перейдите к указанным ниже действиям.

Запуск операции импорта

  1. Расположение мастера импорта или связывания зависит от используемой версии Access. Выполните действия, которые соответствуют вашей версии Access.

    • Если вы используете последнюю версию подписки Microsoft 365 Access или Access 2019, на вкладке «Внешние данные» в группе «Импорт & Link» щелкните «Создать источник данных > из файлового > Excel«.

    • Если вы используете Access 2016, Access 2013 или Access 2010, на вкладке Внешние данные в группе Импорт и связи нажмите кнопку Excel.

    Примечание: Вкладка Внешние данные доступна только в том случае, если открыта база данных.

  2. В диалоговом окне Внешние данные — Электронная таблица Excel в поле Имя файла укажите имя файла Excel, содержащего данные, которые необходимо импортировать.

    -или-

    Чтобы указать импортируемый файл, нажмите кнопку Обзор и воспользуйтесь диалоговым окном Открытие файла.

  3. Укажите способ сохранения импортируемых данных.

    Чтобы сохранить данные в новой таблице, выберите вариант Импортировать данные источника в новую таблицу в текущей базе данных. Позднее будет предложено указать имя этой таблицы.

    Чтобы добавить данные в существующую таблицу, выберите параметр Добавить копию записей в конец таблицы и выберите таблицу в раскрывающемся списке. Этот параметр недоступен, если база данных не содержит таблиц.

    Сведения о связывании с источником данных путем создания связанной таблицы см. ниже в разделе Связывание с данными Excel.

  4. Нажмите кнопку ОК.

    Будет запущен мастер импорта электронных таблиц, который поможет выполнить импорт. Перейдите к дальнейшим действиям.

Использование мастера импорта электронных таблиц

  1. На первой странице мастера выберите лист, содержащий данные, которые необходимо импортировать, и нажмите кнопку Далее.

  2. На второй странице мастера щелкните элемент листы или именованные диапазоны, выберите лист или именованный диапазон, который необходимо импортировать, и нажмите кнопку Далее.

  3. Если первая строка исходного листа или диапазона содержит имена полей, выберите вариант Первая строка содержит заголовки столбцов и нажмите кнопку Далее.

    Если данные импортируются в новую таблицу, заголовки столбцов используются в Access в качестве имен полей в таблице. Эти имена можно изменить в ходе операции импорта или после ее завершения. Если данные добавляются к существующей таблице, убедитесь, что заголовки столбцов исходного листа в точности соответствуют именам полей конечной таблицы.

    Если данные добавляются к существующей таблице, перейдите к действию 6. Если данные добавляются в новую таблицу, выполните оставшиеся действия.

  4. Мастер предложит просмотреть свойства полей. Щелкните столбец в нижней части страницы, чтобы отобразить свойства нужного поля. При необходимости выполните указанные ниже действия.

    • Просмотрите и измените имя и тип данных конечного поля.

      В Access выполняется проверка первых восьми строк каждого столбца, чтобы определить тип данных для соответствующего поля. Если первые восемь строк столбца на листе содержат значения разных типов, например текст и числа, мастер предлагает тип данных, совместимый со всеми значениями столбца — как правило, это текстовый тип данных. Хотя можно выбрать и другой тип данных, следует помнить, что значения, несовместимые с этим типом, будут в ходе импорта пропущены или преобразованы неправильно. Дополнительные сведения о том, как исправить неверные или отсутствующие значения, см. ниже в разделе Разрешение вопросов, связанных с отсутствующими и неверными значениями.

    • Чтобы создать индекс для поля, присвойте свойству Индексировано (Indexed) значение Да.

    • Чтобы пропустить весь исходный столбец, установите флажок Не импортировать (пропустить) поле.

      Настроив параметры, нажмите кнопку Далее.

  5. На следующем экране задайте первичный ключ для таблицы. При выборе варианта автоматически создать ключ Access добавляет поле счетчика в качестве первого поля конечной таблицы и автоматически заполняет его уникальными значениями кодов, начиная с 1. После этого нажмите кнопку Далее.

  6. На последнем экране мастера укажите имя целевой таблицы. в поле Импорт в таблицу. Если таблица уже существует, в Access появится запрос на перезапись существующего содержимого таблицы. Нажмите кнопку « Да «, чтобы продолжить, или «Нет», чтобы указать другое имя целевой таблицы, а затем нажмите кнопку « Готово», чтобы импортировать данные.

    Если импорт части или всех данных в Access завершится успешно, в мастере откроется страница с состоянием операции импорта. Кроме того, сведения об операции можно сохранить в виде спецификации для дальнейшего использования. Если операция завершится неудачей, появится сообщение Ошибка при попытке импорта файла.

  7. Нажмите кнопку Да, чтобы сохранить сведения об операции для использования в будущем. Сохранение сведений позволяет выполнять операцию повторно без использования мастера.

Сведения о том, как сохранить спецификацию, см. в статье Сохранение параметров операции импорта или экспорта в виде спецификации.

Сведения о том, как запустить сохраненную спецификацию импорта или экспорта, см. в статье Запуск сохраненной спецификации импорта или экспорта.

Сведения о том, как запланировать выполнение задач импорта и связывания в определенное время, см. в статье Планирование спецификации импорта или экспорта.

Разрешение вопросов, связанных с отсутствующими и неверными значениями

Сообщение Ошибка при попытке импорта файла свидетельствует о том, что операция импорта завершилась неудачей. Если же после операции импорта отображается диалоговое окно, в котором предлагается сохранить сведения об операции, это означает, что данные успешно импортированы полностью или частично. В сообщении о состоянии указывается также имя таблицы, которая содержит описание всех ошибок, возникших в ходе операции импорта.

Важно: Даже если в сообщении о состоянии указано, что операция завершилась успешно, перед использованием таблицы следует просмотреть ее содержимое и структуру, чтобы убедиться в правильности всех данных.

  • Откройте целевую таблицу в режиме таблицы, чтобы убедиться, что в таблицу были добавлены все данные.

  • Откройте таблицу в режиме конструктора, чтобы проверить типы данных и другие свойства полей.

В приведенной ниже таблице описаны действия по разрешению проблем, связанных с отсутствующими или неверными значениями.

Совет: Если при устранении неполадок обнаружено лишь несколько отсутствующих значений, можно добавить их в таблицу вручную. Если же отсутствует или неправильно импортирован целый столбец либо большой объем данных, следует исправить исходный файл. После устранения всех возможных проблем повторите операцию импорта.

Проблема

Решение

Графические элементы

Графические элементы, такие как логотипы, диаграммы и рисунки, не импортируются. Их следует добавить в базу данных вручную после завершения операции импорта.

Вычисляемые значения

Импортируются результаты вычисляемого столбца или ячейки, но не базовая формула. В ходе операции импорта можно указать тип данных, совместимый с результатами формулы, например числовой.

Значения TRUE или FALSE и -1 или 0

Если исходный лист или диапазон включает столбец, который содержит только значения TRUE или FALSE, в Access для этого столбца создается логическое поле, в которое вставляется значение -1 или 0. Если же исходный лист или диапазон включает столбец, который содержит только значения -1 и 0, в Access для этого столбца по умолчанию создается числовое поле. Чтобы избежать этой проблемы, можно изменить в ходе импорта тип данных поля на логический.

Многозначные поля

При импорте данных в новую или существующую таблицу приложение Access не поддерживает многозначные поля, даже если исходный столбец содержит список значений, разделенных точками с запятой (;). Список значений обрабатывается как одно значение и помещается в текстовое поле.

Усеченные данные

В случае усечения данных в столбце таблицы Access попытайтесь увеличить ширину столбца в режиме таблицы. Если не удается решить проблему с помощью этого способа, это означает, что объем данных в числовом столбце Excel слишком велик для конечного поля в Access. Например, в базе данных Access свойство FieldSize конечного поля может иметь значение Байт, а исходные данные могут содержать значение больше 255. Исправьте значения в исходном файле и повторите операцию импорта.

Формат отображения

Чтобы обеспечить правильное отображение значений в режиме таблицы, может потребоваться изменить свойство Формат некоторых полей в режиме конструктора. Ниже приведены примеры.

  • После завершения импорта в логическом поле в режиме таблицы отображаются значения -1 и 0. Чтобы устранить эту проблему, необходимо после завершения импорта изменить значение свойства Формат этого поля на Да/Нет для отображения флажков.

  • Даты в длинном и среднем форматах отображаются в Access как краткие даты. Чтобы устранить эту проблему, откройте конечную таблицу в Access в режиме конструктора и измените свойство Формат поля даты на Длинный формат даты или Средний формат даты.

Примечание: Если исходный лист содержит элементы форматирования RTF, например полужирный шрифт, подчеркивание или курсив, текст импортируется без форматирования.

Повторяющиеся значения (нарушение уникальности ключа)

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

Значения дат, сдвинутые на 4 года

Значения полей дат, импортированных с листа Excel, оказываются сдвинуты на четыре года. Excel для Windows может использовать две системы дат:

  • Система дат 1904 г. (в которой серийные номера в диапазоне от 0 до 63 918), соответствующие датам с 1 января 1904 г. по 31 декабря 2078 г.

  • Система дат 1900 г. (в которой серийные номера в диапазоне от 1 до 65 380), соответствующие датам с 1 января 1900 г. по 31 декабря 2078 г.

Вы можете задать систему дат в excel Options: File > Options > Advanced> Use 1904 date system.

Примечание    При импорте из книги XLSB всегда используется система дат 1900 независимо от параметра системы дат.

Прежде чем импортировать данные, измените систему дат для книги Excel или выполните после добавления данных запрос на обновление, используя выражение [имя поля даты] + 1462 для корректировки дат.

Excel для macintosh использует только систему дат 1904.

Пустые значения

В конце операции импорта может отобразится сообщение об ошибке с данными, которые были удалены или потеряны во время операции, или при открытии таблицы в режиме таблицы может отобразится, что некоторые значения полей пусты. Если исходные столбцы в Excel не отформатированы или первые восемь строк источника содержат значения различных типов данных, откройте исходный лист и выполните следующие действия:

  • Отформатируйте исходные столбцы.

  • Переместите строки таким образом, чтобы первые восемь строк каждого столбца не содержали значения с разными типами данных.

  • В ходе операции импорта выберите подходящий тип данных для каждого поля. Если тип данных указан неправильно, после завершения операции весь столбец может содержать пустые или неверные значения.

Описанные выше действия позволяют свести к минимуму количество пустых значений. В приведенной ниже таблице представлены ситуации, в которых пустые значения все же будут появляться.

Тип отсутствующих значений

Конечный объект импорта

Тип целевого поля

Решение

Текст

Новая таблица

Поле даты

Замените все текстовые данные значениями дат и повторите попытку импорта.

Текст

Существующая таблица

Числовое поле или поле даты

Замените все текстовые данные значениями, соответствующими типу данных конечного поля, и повторите попытку импорта.

Значения дат, замененные числовыми значениями

Случайные пятизначные числа отображаются вместо фактических значений дат в указанных ниже случаях.

  • Исходный столбец на листе содержит только числовые значения в первых восьми строках, но содержит некоторые значения даты в последующих строках. Эти значения дат будут преобразованы неправильно.

  • Некоторые из первых восьми строк содержат значения дат, которые импортируются в числовые поля. Эти значения дат будут преобразованы неправильно.

    Чтобы избежать этой проблемы, замените значения дат числовыми значениями в исходном столбце и повторите попытку импорта.

    Если столбец содержит преимущественно значения дат и несколько текстовых значений, в некоторых случаях все значения дат отображаются как случайные пятизначные числа. Чтобы избежать этой проблемы, замените текстовые значения значениями дат и попробуйте выполнить операцию импорта повторно.

Числовые значения, замененные значениями даты

Случайные значения даты отображаются вместо фактических числовых значений в указанных ниже случаях.

  • Исходный столбец содержит только значения даты в первых восьми строках, но содержит некоторые числовые значения в последующих строках. Эти числовые значения будут преобразованы неправильно.

  • Некоторые из первых восьми строк содержат числовые значения, импортируемые в поля дат. Эти числовые значения будут преобразованы неправильно.

Чтобы избежать этой проблемы, замените числовые значения значениями дат в исходном столбце и повторите попытку импорта.

Кроме того, может потребоваться просмотреть таблицу ошибок, о которой говорится на последней странице мастера, в режиме таблицы. Эта таблица содержит три поля: «Ошибка», «Поле» и «Строка». В каждой ее строке содержатся сведения об определенной ошибке, и данные в поле «Ошибка» можно использовать при разрешении вопросов.

Строки ошибок и советы по устранению неполадок

Ошибка

Описание

Обрезка полей

Значение в поле превышает размер, заданный свойством FieldSize этого поля.

Ошибка преобразования типа

Значение на листе не соответствует типу данных поля. Это значение может быть заменено пустым или неверным значением в конечном поле. Дополнительные сведения об устранении этой проблемы см. в предыдущей таблице.

Нарушение уникальности ключа

Значение первичного ключа записи совпадает со значением, уже имеющимся в таблице.

Нарушение условия на значение

Значение не соответствует правилу, заданному для этого поля или таблицы с помощью свойства ValidationRule.

Пустое значение в обязательном поле

Данное поле не может иметь пустое значение, поскольку его свойство Обязательное поле (Required) имеет значение Да.

Пустое значение в поле счетчика

Импортируемые данные содержат пустое значение (NULL), и была выполнена попытка добавить его в поле счетчика.

Неинтерпретируемая запись

Текстовое значение содержит знак разделителя (как правило, это прямые кавычки). Если значение содержит знак разделителя, он должен содержаться в текстовом файле дважды, например:

Диаметр 4 1/2″»

К началу страницы

Связывание с данными Excel

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

При связывании с листом или именованным диапазоном Excel в Access создается новая таблица, связанная с исходными ячейками. Любые изменения, вносимые в исходные ячейки в Excel, отражаются в связанной таблице. При этом изменить содержимое соответствующей таблицы в Access невозможно. Если требуется добавить, изменить или удалить данные, изменения необходимо внести в исходный файл.

Стандартные сценарии связывания с листом Excel из Access

Обычно связывание с листом Excel (вместо импорта) выполняют по указанным ниже причинам.

  • Требуется хранить данные в листах Excel с возможностью использовать удобные функции запросов и отчетов Access.

  • В отделе или рабочей группе используется Access, однако приходится также работать с внешними источниками данных, такими как листы Excel. Создавать копии внешних данных нецелесообразно, однако необходимо работать с данными в Access.

Первое связывание с листом Excel

  • В Excel невозможно создать связь с базой данных Access.

  • При связывании с файлом Excel в Access создается новая таблица, которая называется также связанной таблицей. В ней отображаются данные исходного листа или именованного диапазона; при этом они не сохраняются в базе данных.

  • Данные Excel невозможно связать с существующей таблицей базы данных. Это означает, что операция связывания не позволяет добавлять данные в существующую таблицу.

  • База данных может содержать несколько связанных таблиц.

  • Все изменения данных в Excel автоматически отражаются в связанной таблице. Однако содержимое и структура связанной таблицы Access доступны только для чтения.

  • При открытии книги Excel в Access (для этого в диалоговом окне Открытие файла необходимо выбрать в поле со списком Тип файлов значение Microsoft Excel и выбрать нужный файл) в Access создается пустая база данных и автоматически запускается мастер связи с электронной таблицей.

Подготовка данных Excel

  1. Найдите файл Excel и лист или диапазон, содержащий нужные данные. Если нет необходимости создавать связь со всем листом, можно определить именованный диапазон, включающий только нужные ячейки.

    Создание именованного диапазона в Excel (необязательно — целесообразно лишь для связывания отдельных данных на листе)

    1. Перейдите в Excel и откройте лист, в котором нужно определить именованный диапазон.

    2. Выделите диапазон ячеек, содержащих данные, на которые необходимо создать ссылку.

    3. Щелкните выделенный диапазон правой кнопкой мыши и выберите пункт Имя диапазона или Определить имя.

    4. В диалоговом окне Создание имени укажите имя диапазона в поле Имя и нажмите кнопку ОК.

      Имейте в виду, что в ходе одной операции связывания можно создать связь лишь с одним листом или диапазоном. Чтобы создать связь с несколькими местами в книге, следует повторить операцию связывания для каждого листа или диапазона.

  2. Просмотрите исходные данные и выполните необходимые действия в соответствии с приведенной ниже таблицей.

    Элемент

    Описание

    Табличный формат

    Убедитесь, что ячейки имеют табличный формат. Если диапазон включает объединенные ячейки, их содержимое помещается в поле, соответствующее крайнему левому столбцу, а другие поля остаются пустыми.

    Пропуск столбцов и строк

    Во время операции связывания нельзя пропустить исходные столбцы и строки. Однако можно скрыть поля и отфильтровать записи, открыв связанную таблицу в режиме таблицы после их импорта в Access.

    Число столбцов

    Число исходных столбцов не должно превышать 255, т.к. Access поддерживает не более 255 полей в таблице.

    Пустые столбцы, строки и ячейки

    Удалите все лишние пустые столбцы и строки из листа Excel или диапазона. При наличии пустых ячеек попытайтесь добавить отсутствующие данные.

    Значения ошибок

    Если одна или несколько ячеек на листе или в диапазоне содержат значения ошибок, исправьте эти значения до начала операции импорта. Имейте в виду, что если исходный лист или диапазон содержит значения ошибок, в Access в соответствующее поле таблицы вставляется пустое значение.

    Тип данных

    Изменить тип данных и размер полей в связанной таблице невозможно. Перед началом связывания следует проверить тип данных в каждом столбце.

    Настоятельно рекомендуется отформатировать все столбцы, которые содержат значения с разными типами данных. Например, столбец «Номер рейса» может содержать числовые и текстовые значения, такие как 871, AA90 и 171. Чтобы исключить отсутствующие или неверные значения, выполните указанные ниже действия.

    1. Щелкните столбец правой кнопкой мыши и выберите пункт Формат ячеек.

    2. На вкладке Числовой в группе Категория выберите формат.

    3. Нажмите кнопку ОК.

    Первая строка

    Если первая строка листа или именованного диапазона содержит имена столбцов, можно указать, что приложение Access должно в ходе связывания обрабатывать данные в первой строке как имена полей. Если лист не содержит имен или какое-либо имя столбца не соответствует правилам именования полей в Access, каждому полю назначается допустимое имя.

  3. Закройте исходный файл, если он открыт.

Подготовка конечной базы данных

  1. Откройте базу данных, в которой требуется создать связь. Убедитесь, что база данных доступна не только для чтения и что у вас есть права на внесение в нее изменений.

  2. Если вы не хотите хранить ссылку ни в какой из существующих баз данных, создайте пустую базу данных: перейдите на вкладку «Файл», нажмите кнопку «Создать» и выберите пункт «Пустая база данных». Обратите внимание: если вы используете Access 2007, нажмите кнопку Microsoft Office и выберите пункт Создать.

После этого можно начать операцию связывания.

Создание связи

  1. Расположение мастера импорта или связывания зависит от используемой версии Access. Выполните действия, которые соответствуют вашей версии Access.

    • Если вы используете последнюю версию подписки Microsoft 365 Access или Access 2019, на вкладке «Внешние данные» в группе «Импорт & Link» щелкните «Создать источник данных > из файлового > Excel«.

    • Если вы используете Access 2016, Access 2013 или Access 2010, на вкладке Внешние данные в группе Импорт и связи нажмите кнопку Excel.

    Примечание: Вкладка Внешние данные доступна только в том случае, если открыта база данных.

  2. В диалоговом окне Внешние данные — Электронная таблица Excel в поле Имя файла укажите имя исходного файла Excel.

  3. Выберите вариант Создать связанную таблицу для связи с источником данных и нажмите кнопку ОК.

    Откроется мастер связи с электронной таблицей, который поможет выполнить связывание.

  4. На первой странице мастера выберите лист или именованный диапазон с нужными данными и нажмите кнопку Далее.

  5. Если первая строка исходного листа или диапазона содержит имена полей, выберите вариант Первая строка содержит заголовки столбцов. В Access эти заголовки столбцов используются в качестве имен полей в таблице. Если имя столбца включает специальные знаки, его невозможно использовать как имя поля в Access. В таких случаях отображается сообщение об ошибке, в котором говорится, что полю в Access будет назначено допустимое имя. Нажмите кнопку ОК для продолжения.

  6. На последней странице мастера укажите имя связанной таблицы и нажмите кнопку Готово. Если таблица с указанным именем уже существует, будет предложено перезаписать существующую таблицу или запрос. Нажмите кнопку Да, чтобы перезаписать таблицу или запрос, или кнопку Нет, чтобы указать другое имя.

    Приложение Access попытается создать связанную таблицу. В случае успешного завершения операции появится сообщение Завершено связывание таблицы. Откройте связанную таблицу и просмотрите поля и данные, чтобы убедиться в их правильности.

    При наличии ошибок или неверных данных необходимо устранить ошибки в исходных данных. Дополнительные сведения об устранении ошибок или неверных значений см. в следующем разделе.

К началу страницы

Разрешение вопросов, связанных со значением #Число! и другими неверными значениями в связанной таблице

Даже если появится сообщение Завершено связывание таблицы, откройте таблицу в режиме таблицы и убедитесь, что строки и столбцы содержат правильные данные.

При наличии в таблице ошибок или неверных данных необходимо выполнить действия, описанные в приведенной ниже таблице, и повторить попытку связывания. Следует помнить, что добавить значения непосредственно в связанную таблицу невозможно, т.к. она доступна только для чтения.

Проблема

Решение

Графические элементы

Графические элементы листов Excel, такие как логотипы, диаграммы и рисунки, не могут быть включены в связь с Aсcess.

Формат отображения

Чтобы обеспечить правильное отображение значений в режиме таблицы, может потребоваться изменить свойство Формат некоторых полей в режиме конструктора.

Вычисляемые значения

В Access в соответствующем поле отображаются результаты вычисляемого столбца или ячейки, но не формула (выражение).

Усеченные текстовые значения

Увеличьте ширину столбца в режиме таблицы. Если даже после этого значение не отображается целиком, возможно, его длина превышает 255 знаков. В Access связывание возможно только для первых 255 знаков, поэтому вместо связывания следует выполнить импорт данных.

Сообщение о переполнении числового поля

Даже если таблица кажется правильной, впоследствии при выполнении запроса с использованием этой таблицы может быть выведено сообщение об ошибке Переполнение числового поля. Это может объясняться конфликтом между типом данных поля в связанной таблице и типом данных, хранящихся в этом поле.

Значения TRUE или FALSE и -1 или 0

Если исходный лист или диапазон включает столбец, который содержит только значения TRUE или FALSE, в Access в связанной таблице для этого столбца создается логическое поле. Если же исходный лист или диапазон включает столбец, который содержит только значения -1 или 0, в Access для этого столбца по умолчанию создается числовое поле, тип данных которого невозможно изменить в таблице. Если требуется, чтобы в связанной таблице было создано логическое поле, убедитесь, что исходный столбец содержит значения TRUE и FALSE.

Многозначные поля

В Access многозначные поля не поддерживаются, даже если исходный столбец содержит список значений, разделенных точками с запятой (;). Список значений обрабатывается как одно значение и помещается в текстовое поле.

#Число!

В Access значение ошибки #Число! отображается в полях вместо данных в указанных ниже случаях.

  • Если исходный столбец, который содержит в основном текстовые значения, включает также несколько числовых значений или значений дат, числовые значения и значения дат не импортируются.

  • Если исходный столбец, который содержит в основном числовые значения, включает также несколько текстовых значений, текстовые значения не импортируются.

  • Если исходный столбец, который содержит в основном значения дат, включает также несколько текстовых значений, текстовые значения не импортируются.

Чтобы свести к минимуму число пустых значений в таблице, выполните указанные ниже действия.

  1. Убедитесь, что исходный столбец не содержит значения с разными типами данных.

  2. Отформатируйте столбцы на листе Excel.

  3. Во время операции связывания выберите нужный тип данных для каждого поля. Если тип данных неправильный, результирующий столбец может содержать только #Num! Значения для всех строк данных.

Числовые значения, замененные значениями дат

Если поле содержит случайные пятизначные числа, проверьте исходный столбец с числовыми значениями на наличие значений дат. Значения дат в числовых столбцах преобразуются в числа. Замените значения дат числовыми значениями и повторите попытку связывания.

Значения дат, замененные числовыми значениями

Если поле содержит случайные значения дат, проверьте исходный столбец со значениями дат на наличие числовых значений. Числовые значения в столбцах дат преобразуются в даты. Замените числовые значения значениями дат и повторите попытку связывания.


К началу страницы

Содержание

  • Импортировать файл Excel в Access
  • Доступ к экспорту VBA в новый файл Excel
  • Экспорт в существующий файл Excel
  • Функция экспорта в новый файл Excel

В этом руководстве будут рассмотрены способы импорта данных из Excel в таблицу Access и способы экспорта объектов Access (запросов, отчетов, таблиц или форм) в Excel.

Импортировать файл Excel в Access

Чтобы импортировать файл Excel в Access, используйте acImport вариант DoCmd.TransferSpreadsheet :

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, «Table1», «C:  Temp  Book1.xlsx», True

Или вы можете использовать DoCmd.TransferText чтобы импортировать файл CSV:

DoCmd.TransferText acLinkDelim,, «Таблица1», «C:  Temp  Book1.xlsx», True

Импортировать Excel в функцию доступа

Эту функцию можно использовать для импорта файла Excel или CSV в таблицу доступа:

Открытая функция ImportFile (имя файла как строка, HasFieldNames как логическое, TableName как строка) как логическое »Пример использования: call ImportFile (« Выбрать файл Excel »,« Файлы Excel »,« * .xlsx »,« C:  », True , True, "ExcelImportTest", True, True, false, True) При ошибке Перейти к err_handler If (Right (Filename, 3) = "xls") или ((Right (Filename, 4) = "xlsx")) Then DoCmd. TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, TableName, Filename, blnHasFieldNames End If If (Right (Filename, 3) = "csv") Then DoCmd.TransferText acLinkDelim`` TableName, Filename, True End If Exit_Thing if: 'Очистить связанный в' Таблица Excel уже существует … и удалите ее, если это так. Если ObjectExists ("Table", TableName) = True Then DropTable (TableName) Установить colWorksheets = Nothing Функция выхода err_handler: If (Err.Number = 3086 или Err.Number = 3274 или Err. Number = 3073) And errCount <3 Then errCount = errCount + 1 ElseIf Err.Number = 3127 Then MsgBox "Поля на всех вкладках одинаковы. Убедитесь, что каждый лист имеет точные имена столбцов, если вы хотите импортировать несколько ", vbCritical," MultiSheets не идентичны "ImportFile = False GoTo Exit_Thing Else MsgBox Err.Number &" - ​​"& Err.Description ImportFile = False GoTo Exit_Thing Resume End If End Function

Вы можете вызвать функцию так:

Private Sub ImportFile_Example () Вызов VBA_Access_ImportExport.ImportFile ("C:  Temp  Book1.xlsx", True, "Imported_Table_1") End Sub

Чтобы экспортировать объект Access в новый файл Excel, используйте DoCmd.OutputTo метод или DoCmd.TransferSpreadsheet метод:

Экспорт запроса в Excel

Эта строка кода VBA экспортирует запрос в Excel с помощью DoCmd.OutputTo:

DoCmd.OutputTo acOutputQuery, "Query1", acFormatXLSX, "c:  temp  ExportedQuery.xls"

Или вы можете использовать вместо этого метод DoCmd.TransferSpreadsheet:

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, «Query1», «c:  temp  ExportedQuery.xls», True

Примечание: Этот код экспортирует в формат XLSX. Вместо этого вы можете обновить аргументы для экспорта в формат файла CSV или XLS (например, acFormatXLSX к acFormatXLS).

Экспорт отчета в Excel

Эта строка кода экспортирует отчет в Excel с помощью DoCmd.OutputTo:

DoCmd.OutputTo acOutputReport, «Report1», acFormatXLSX, «c:  temp  ExportedReport.xls»

Или вы можете использовать вместо этого метод DoCmd.TransferSpreadsheet:

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, «Report1», «c:  temp  ExportedReport.xls», True

Экспорт таблицы в Excel

Эта строка кода экспортирует таблицу в Excel с помощью DoCmd.OutputTo:

DoCmd.OutputTo acOutputTable, «Table1», acFormatXLSX, «c:  temp  ExportedTable.xls»

Или вы можете использовать вместо этого метод DoCmd.TransferSpreadsheet:

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, «Table1», «c:  temp  ExportedTable.xls», True

Экспорт формы в Excel

Эта строка кода экспортирует форму в Excel с помощью DoCmd.OutputTo:

DoCmd.OutputTo acOutputForm, «Form1», acFormatXLSX, «c:  temp  ExportedForm.xls»

Или вы можете использовать вместо этого метод DoCmd.TransferSpreadsheet:

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, «Form1», «c:  temp  ExportedForm.xls», True

Экспорт в функции Excel

Эти однострочные команды отлично подходят для экспорта в новый файл Excel. Однако их нельзя будет экспортировать в существующую книгу. В следующем разделе мы представляем функции, которые позволяют вам добавить экспорт в существующий файл Excel.

Ниже мы включили некоторые дополнительные функции для экспорта в новые файлы Excel, включая обработку ошибок и многое другое.

Экспорт в существующий файл Excel

Приведенные выше примеры кода отлично подходят для экспорта объектов Access в новый файл Excel. Однако их нельзя будет экспортировать в существующую книгу.

Чтобы экспортировать объекты Access в существующую книгу Excel, мы создали следующую функцию:

Общедоступная функция AppendToExcel (strObjectType как строка, strObjectName как строка, strSheetName как строка, strFileName как строка) Dim rst as DAO.Recordset Dim ApXL As Excel.Application Dim xlWBk As Excel.Workbook Dim xlWSh Asim Integer. As Long = -4161 Const xlCenter As Long = -4108 Const xlBottom As Long = -4107 Const xlContinuous As Long = 1 Выберите регистр strObjectType Case "Таблица", "Запрос" Установить rst = CurrentDb.OpenRecordset (strObjectName, dbOpenDynaset, dbOpenDynaset, dbOpenDynaset, dbeeSee "Form" Set rst = Forms (strObjectName) .RecordsetClone Case "Report" Set rst = CurrentDb.OpenRecordset (Reports (strObjectName) .RecordSource, dbOpenDynaset, dbSeeChanges) End Select If rst.RecordCount = 0 Then No records to be exported = 0 Then No records to be exported . ", vbInformation, GetDBTitle Остальное при ошибке Возобновить Далее Установить ApXL = GetObject (," Excel.Application ") Если Err.Number 0 Затем Установить ApXL = CreateObject (" Excel.Application ") Конец, если Err.Clear ApXL.Visible = False Установите xlWBk = ApXL.Workbooks.Open (strFil eName) Задайте xlWSh = xlWBk.Sheets.Add xlWSh.Name = Left (strSheetName, 31) xlWSh.Range ("A1"). Выберите "Выполнить до тех пор, пока intCount = rst.fields.Count ApXL.ActiveCell = rst.fields (intCount)". Назовите ApXL.ActiveCell.Offset (0, 1) .Select intCount = intCount + 1 Loop rst.MoveFirst xlWSh.Range ("A2"). CopyFromRecordset rst With ApXL .Range ("A1"). Select .Range (.Selection, .Selection.End (xlToRight)). Выберите .Selection.Interior.Pattern = xlSolid .Selection.Interior.PatternColorIndex = xlAutomatic .Selection.Interior.TintAndShade = -0.25 .Selection.Interior.PatternTintAndShade = 0. xlNone .Selection.AutoFilter .Cells.EntireColumn.AutoFit .Cells.EntireRow.AutoFit .Range ("B2"). Выберите .ActiveWindow.FreezePanes = True .ActiveSheet.Cells.Select .ActiveSheet.Cells.WrapText.Cells. .EntireColumn.AutoFit xlWSh.Range ("A1"). Выберите .Visible = True End With 'xlWB.Close True' Set xlWB = Nothing 'ApXL.Quit' Set ApXL = Nothing End If End Function

Вы можете использовать эту функцию так:

Private Sub AppendToExcel_Example () Вызов VBA_Access_ImportExport.ExportToExcel («Таблица», «Таблица1», «VBASheet», «C:  Temp  Test.xlsx») End Sub

Обратите внимание, что вас просят определить:

  • Что выводить? Таблица, отчет, запрос или форма
  • Имя объекта
  • Имя выходного листа
  • Путь и имя выходного файла.

Экспорт SQL-запроса в Excel

Вместо этого вы можете экспортировать SQL-запрос в Excel, используя аналогичную функцию:

Открытая функция AppendToExcelSQLStatemet (strsql As String, strSheetName As String, strFileName As String) Dim strQueryName As String Dim ApXL As Excel.Application Dim xlWBk As Excel.Workbook Dim xlWSh As Excel.Worksheet Dim intCount10 As Integer Const x xlBottom As Long = -4107 Const xlVAlignCenter = -4108 Const xlContinuous As Long = 1 Dim qdf As DAO.QueryDef Dim rst As DAO.Recordset strQueryName = "tmpQueryToExportToExcel" IfldueryName.StrleteQeueryDueryName, strleteQext Конец Если Установить qdf = CurrentDb.CreateQueryDef (strQueryName, strsql) Установить rst = CurrentDb.OpenRecordset (strQueryName, dbOpenDynaset) Если rst.RecordCount = 0 Тогда MsgBox «Нет записей для экспорта. ApXL = GetObject (, "Excel.Application") Если Err.Number 0, тогда установите ApXL = CreateObject ("Excel.Application") End If Err.Clear ApXL.Visible = False Set xlWBk = ApXL.Workbooks.Open (strFileName) Set xlWSh = xlWBk.Sheet s.Add xlWSh.Name = Left (strSheetName, 31) xlWSh.Range ("A1"). Выберите "Do until intCount = rst.fields.Count ApXL.ActiveCell = rst.fields (intCount) .Name ApXL.ActiveCell.Offset ( 0, 1) .Select intCount = intCount + 1 Loop rst.MoveFirst xlWSh.Range ("A2"). CopyFromRecordset rst With ApXL .Range ("A1"). Select .Range (.Selection, .Selection.End (xlToRight) ) .Select .Selection.Interior.Pattern = xlSolid .Selection.Interior.PatternColorIndex = xlAutomatic .Selection.Interior.TintAndShade = -0.25 .Selection.Interior.PatternTintAndShade = 0 .Selection.Borders.LineStyle. … ("A1"). Выберите .Visible = True End With 'xlWB.Close True' Set xlWB = Nothing 'ApXL.Quit' Set ApXL = Nothing End If End Function

Вызывается так:

Private Sub AppendToExcelSQLStatemet_Example () Вызов VBA_Access_ImportExport.ExportToExcel («SELECT * FROM Table1», «VBASheet», «C:  Temp  Test.xlsx») End Sub

Где вас просят ввести:

  • SQL-запрос
  • Имя выходного листа
  • Путь и имя выходного файла.

Функция экспорта в новый файл Excel

Эти функции позволяют экспортировать объекты Access в новую книгу Excel. Вы можете найти их более полезными, чем простые одиночные строки в верхней части документа.

Открытая функция ExportToExcel (strObjectType как строка, strObjectName как строка, необязательный strSheetName как строка, необязательный strFileName как строка) Dim rst as DAO.Recordset Dim ApXL As Object Dim xlWBk As Object Dim xlWSh As Object Dim intCount As Integer Const xlWSh As Object Dim intCount As Integer Const xlWSh As Object Dim intCount As Integer Const 4161 Const xlCenter As Long = -4108 Const xlBottom As Long = -4107 Const xlContinuous As Long = 1 При ошибке GoTo ExportToExcel_Err DoCmd.Hourglass True Select Case strObjectType Case "Table", "Query" Set rst = CurrentDb.OpenrRecordSet (strObjectType) , dbSeeChanges) Case "Form" Set rst = Forms (strObjectName) .RecordsetClone Case "Report" Set rst = CurrentDb.OpenRecordset (Reports (strObjectName) .RecordSource, dbOpenDynaset, dbSeeChanges) End Select If rst.Rec записи для экспорта. ", vbInformation, GetDBTitle DoCmd.Hourglass False Else При ошибке Возобновить Далее Установить ApXL = GetObject (," Excel.Application ") Если Err.Number 0 Затем Установить ApXL = CreateObject (" Excel.Application ") Конец Если Err. Очистить при ошибке Перейти к ExportToExcel_Err Установить xlWBk = ApXL.Workbooks.Add ApXL.Visible = False Установить xlWSh = xlWBk.Worksheets ("Sheet1") Если Len (strSheetName)> 0 Тогда xlWSh.Name = Left (31) Если xlWSh.Name = Left (31) If xlWSh EndheetName .Range ("A1"). Выберите "Сделать до" intCount = rst.fields.Count ApXL.ActiveCell = rst.fields (intCount) .Name ApXL.ActiveCell.Offset (0, 1). Выберите intCount = intCount + 1 Loop rst. MoveFirst xlWSh.Range ("A2"). CopyFromRecordset rst With ApXL .Range ("A1"). Select .Range (.Selection, .Selection.End (xlToRight)). Select .Selection.Interior.Pattern = xlSolid .Selection. Interior.PatternColorIndex = xlAutomatic .Selection.Interior.TintAndShade = -0.25 .Selection.Interior.PatternTintAndShade = 0 .Selection.Borders.LineStyle = xlNone .Selection.AutoFilter .Cells.EnutoColumn.AutoFilter .Cells.EnutoColumn.AutoFilter. B2 "). Выберите .ActiveWindow.FreezePanes = True .ActiveSheet.Cells.Select .ActiveSheet.Cells.WrapText = False .ActiveSheet.Cells.EntireColumn.AutoFit xlWSh.Range (" A1 "). Выберите .Visible = True End Wi th retry: If FileExists (strFileName) Then Kill strFileName End If If if strFileName "" Then xlWBk.SaveAs strFileName, FileFormat: = 56 End If rst.Close Set rst = Nothing DoCmd.Hourglass False End If ExportToExcel_Exit_Exit: DoC ExportToExcel_Err: DoCmd.SetWarnings True MsgBox Err.Description, vbExclamation, Err.Number DoCmd.Hourglass False Resume ExportToExcel_Exit End Function

Функцию можно вызвать так:

Private Sub ExportToExcel_Example () Вызов VBA_Access_ImportExport.ExportToExcel ("Table", "Table1", "VBASheet") End Sub

Make a database from an existing worksheet

Updated on December 2, 2020

Do you have a huge Excel spreadsheet that you can’t make heads or tails of?
It’s time to organize your contact list into a Microsoft Access database. It’s much easier than you may imagine and you’ll definitely be pleased with the results. This tutorial will walk you through the entire process step-by-step.
If you don’t have your own spreadsheet and want to follow along with the tutorial, you can download the sample Excel file used to generate the tutorial.

Create a New Access 2013 Database

Unless you have an existing database that you use to store contact information, you’re probably going to want to create a new database from scratch. To do this, select the Blank Desktop Database icon on the Getting Started with Microsoft Access screen. You’ll be presented with the screen above. Provide your database with a name, select the Create button and you’ll be in business.

Begin the Excel Import Process

Select the External Data tab at the top of the Access screen and double-click the Excel button to begin the Excel import process.

Select the Source and Destination

Next, you’ll be presented with the screen shown above. Select the Browse button and navigate to the file you’d like to import. Once you’ve located the correct file, select the Open button.

On the bottom half of the screen, you’re presented with import destination options. In this tutorial, we’re interested in converting an existing Excel spreadsheet to a new Access database, so we’ll choose Import the source data into a new table in the current database
Other options on this screen allow you to:

  • Link your database to an Excel sheet so that changes in the source sheet are reflected in the database.
  • Import data into an existing database table.

Once you’ve selected the correct file and option, select OK to continue.

Select Column Headings

Ensure that the First Row Contains Column Headings box is selected if the first row of the spreadsheet has column names for the data, such as Last Name, First Name, and Address. This will instruct Access to treat the first row as names, rather than actual data to be stored in the list of contacts.

Select Next to continue.

Create Any Desired Indexes

Database indexes are an internal mechanism that can be used to increase the speed at which Access can find information in your database. You can apply an index to one or more of your database columns at this step. Simply select the Indexed pull-down menu and select the appropriate option.

Keep in mind that indexes create a lot of overhead for your database and will increase the amount of disk space used. For this reason, you want to keep indexed columns to a minimum. In our database, we’ll most often be searching on the Last Name of our contacts, so let’s create an index on this field. We might have friends with the same last name, so we do want to allow duplicates here. Ensure that the Last Name column is selected in the bottom portion of the windows and then select Yes (Duplicates OK) from the Indexed pull-down menu.

Select Next to continue.

Select a Primary Key

The primary key is used to uniquely identify records in a database. The easiest way to do this is to let Access generate a primary key for you. Select the Let Access add primary key option and press Next to continue. If you’re interested in choosing your own primary key, you might want to read our article on database keys.

Name Your Table

You need to provide Access with a name to reference your table. Enter this into the appropriate field and select the Finish button.

View Your Data

You’ll see an intermediate screen asking you if you’d like to save the steps used to import your data. If not, go ahead and select Close.

You’ll then be returned to the main database screen where you can view your data by simply double-clicking on the table name in the left panel.

Congratulations, you’ve successfully imported your data from Excel into Access!

Thanks for letting us know!

Get the Latest Tech News Delivered Every Day

Subscribe

Понравилась статья? Поделить с друзьями:
  • Формы excel для учета товаров
  • Формы excel для управленческого учета
  • Формуляр медицинского изделия скачать в word бесплатно
  • Формуляр гост для word
  • Формуляр в excel это