Как связать access с c

Обновлено: 01.05.2024

You can connect to an Access database (either an .mdb file or an .accdb file) by using Visual Studio. After you define the connection, the data appears in the Data Sources window. From there, you can drag tables or views onto your design surface.

If you're using Visual Studio to connect to Access databases, you will need to be aware that versions of Visual Studio prior to Visual Studio 2022 are all 32-bit processes.

This means some of the data tools in Visual Studio will only be able to connect to Access databases using 32-bit data providers.

If you're using Visual Studio to connect to Access databases, you will need to be aware that versions of Visual Studio prior to Visual Studio 2022 are all 32-bit processes. This means some of the data tools in Visual Studio 2019 and earlier will only be able to connect to Access databases using 32-bit data providers.

If you're using Visual Studio 2022 to connect to Access databases, you will need to be aware that Visual Studio 2022 is now a 64-bit process. This means some of the data tools in Visual Studio will not be able to connect to Access databases using 32-bit data providers.

If you need to maintain 32-bit applications that connect to Access databases, you will still be able to build and run the application with Visual Studio 2022. However, if you need to use any of the Visual Studio Data Tools such as Server Explorer, Data Source Wizard, or the DataSet Designer, you will need to use an earlier version of Visual Studio that is still a 32-bit process. The last version of Visual Studio that was a 32-bit process was Visual Studio 2019.

If you plan on converting the project to be a 64-bit process, it’s recommended that you use the 64-bit Microsoft Access Database Engine, also called Access Connectivity Engine (ACE). Please see OLE DB Provider for Jet and ODBC driver are 32-bit versions only for more information.

Prerequisites

To use these procedures, you need a Windows Forms or WPF project and either an Access database (.accdb file) or an Access 2000-2003 database (.mdb file). Follow the procedure that corresponds to your file type.

Create a dataset for an .accdb file

Connect to databases created with Microsoft 365, Access 2016, Access 2013, Access 2010, or Access 2007 by using the following procedure.

Open a Windows Forms or WPF application project in Visual Studio.

To open the Data Sources window, press Ctrl+Q, enter "data" in the search box, and choose Data Sources window. Or on the View menu, select Other Windows > Data Sources. Or on the keyboard, press Shift+Alt+D.

Screenshot of Data Sources in search box

In the Data Sources window, click Add New Data Source.

The Data Source Configuration Wizard opens.

Screenshot showing Data Source Configuration Wizard

Select Database on the Choose a Data Source Type page, and then select Next.

Select Dataset on the Choose a Database Model page, and then select Next.

Screenshot of Choose a Database Model page

On the Choose your Data Connection page, select New Connection to configure a new data connection.

Screenshot of Choose your Data Connection page

The Add Connection dialog box opens.

Screenshot of Add Connection dialog box

If Data source is not set to Microsoft Access Database File, select the Change button.

Screenshot of Choose Data Source dialog box

Choose Browse next to Database file name, and then navigate to your .accdb file and choose Open.

If the bitness (32-bit or 64-bit) of Microsoft Office and Visual Studio do not match, you will see an error while connecting to an Access database. In Visual Studio 2019, you will get an error that the database provider is not registered. In Visual Studio 2022, you will see an error that you can't connect to a 32-bit data provider. To resolve this error, make sure that if you are using a 32-bit version of Office, you are using Visual Studio 2019 or earlier; for a 64-bit version of Office, you need Visual Studio 2022 or later.

Enter a user name and password (if necessary), and then choose OK.

Select Next on the Choose your Data Connection page.

You may get a dialog box telling you the data file is not in your current project. Select Yes or No.

Select Next on the Save connection string to the Application Configuration file page.

Screenshot of page

Expand the Tables node on the Choose your Database Objects page.

Screenshot of Choose your Database Objects page

Select the tables or views you want to include in your dataset, and then select Finish.

The dataset is added to your project, and the tables and views appear in the Data Sources window.

Screenshot of Data Sources Window, populated with database objects

Create a dataset for an .accdb file

Connect to databases created with Microsoft 365, Access 2016, Access 2013, Access 2010, or Access 2007 by using the following procedure.

Open a Windows Forms or WPF application project in Visual Studio.

To open the Data Sources window, press Ctrl+Q, enter "data" in the search box, and choose Data Sources window. Or on the View menu, select Other Windows > Data Sources. Or on the keyboard, press Shift+Alt+D.

View Other Windows Data Sources

In the Data Sources window, click Add New Data Source.

The Data Source Configuration Wizard opens.

Select Database on the Choose a Data Source Type page, and then select Next.

Select Dataset on the Choose a Database Model page, and then select Next.

Screenshot of Choose a Database Model page

On the Choose your Data Connection page, select New Connection to configure a new data connection.

Screenshot of Choose your Data Connection page

The Add Connection dialog box opens.

Screenshot of Add Connection dialog box

If Data source is not set to Microsoft Access Database File, select the Change button.

Screenshot of Choose Data Source dialog box

Choose Browse next to Database file name, and then navigate to your .accdb file and choose Open.

If the bitness (32-bit or 64-bit) of Microsoft Office and Visual Studio do not match, you will see an error while connecting to an Access database. In Visual Studio 2019, you will get an error that the database provider is not registered. In Visual Studio 2022, you will see an error that you can't connect to a 32-bit data provider. To resolve this error, make sure that if you are using a 32-bit version of Office, you are using Visual Studio 2019 or earlier; for a 64-bit version of Office, you need Visual Studio 2022 or later.

Enter a user name and password (if necessary), and then choose OK.

Select Next on the Choose your Data Connection page.

You may get a dialog box telling you the data file is not in your current project. Select Yes or No.

Select Next on the Save connection string to the Application Configuration file page.

Screenshot of page

Expand the Tables node on the Choose your Database Objects page.

Select the tables or views you want to include in your dataset, and then select Finish.

The dataset is added to your project, and the tables and views appear in the Data Sources window.

Create a dataset for an .accdb file

Connect to databases created with Microsoft 365, Access 2013, Access 2010, or Access 2007 by using the following procedure.

Open a Windows Forms or WPF application project in Visual Studio.

To open the Data Sources window, press Ctrl+Q, enter "data" in the search box, and choose Data Sources window. Or on the View menu, select Other Windows > Data Sources. Or on the keyboard, press Shift+Alt+D.

In the Data Sources window, click Add New Data Source.

The Data Source Configuration Wizard opens.

Select Database on the Choose a Data Source Type page, and then select Next.

Select Dataset on the Choose a Database Model page, and then select Next.

On the Choose your Data Connection page, select New Connection to configure a new data connection.

The Add Connection dialog box opens.

If Data source is not set to Microsoft Access Database File, select the Change button.

Choose Browse next to Database file name, and then navigate to your .accdb file and choose Open.

Enter a user name and password (if necessary), and then choose OK.

Select Next on the Choose your Data Connection page.

You may get a dialog box telling you the data file is not in your current project. Select Yes or No.

Select Next on the Save connection string to the Application Configuration file page.

Expand the Tables node on the Choose your Database Objects page.

Select the tables or views you want to include in your dataset, and then select Finish.

The dataset is added to your project, and the tables and views appear in the Data Sources window.

Create a dataset for an .mdb file

Connect to databases created with Access 2000-2003 by using the following procedure.

Open a Windows Forms or WPF application project in Visual Studio.

On the View menu, select Other Windows > Data Sources.

In the Data Sources window, click Add New Data Source.

The Data Source Configuration Wizard opens.

Select Database on the Choose a Data Source Type page, and then select Next.

Select Dataset on the Choose a Database Model page, and then select Next.

On the Choose your Data Connection page, select New Connection to configure a new data connection.

If the data source is not Microsoft Access Database File (OLE DB), select Change to open the Change Data Source dialog box and select Microsoft Access Database File, and then select OK.

In the Database file name, specify the path and name of the .mdb file you want to connect to, and then select OK.

Add Connection Access Database File

Select Next on the Choose your Data Connection page.

Select Next on the Save connection string to the Application Configuration file page.

Expand the Tables node on the Choose your Database Objects page.

Select whatever tables or views you want in your dataset, and then select Finish.

The dataset is added to your project, and the tables and views appear in the Data Sources window.

Next steps

The dataset that you just created is available in the Data Sources window. You can now perform any of the following tasks:

Select items in the Data Sources window and drag them onto your form or design surface (see Bind Windows Forms controls to data in Visual Studio or WPF data binding overview).

Open the data source in the Dataset Designer to add or edit the objects that make up the dataset.

Add validation logic to the ColumnChanging or RowChanging event of the data tables in the dataset (see Validate data in datasets).

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

С целью упрощения код не включает обработку исключений для выполнения в рабочей среде.

Предварительные требования

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

SQL Server Express LocalDB. если у вас нет SQL Server Express LocalDB, его можно установить на странице загрузки SQL Server.

Настройка образца базы данных

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

в Visual Studio откройте окно обозреватель сервера .

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

В текстовом поле имя сервера введите (LocalDB) \mssqllocaldb.

В текстовом поле имя новой базы данных введите Sales, а затем нажмите кнопку ОК.

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

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

Откроется окно редактора запросов.

вставьте скрипт T-SQL в редактор запросов, а затем нажмите кнопку выполнить .

По истечении короткого времени выполнение запроса завершается и создаются объекты базы данных. База данных содержит две таблицы: Customer и Orders. Эти таблицы изначально не содержат данных, но их можно добавить при запуске создаваемого приложения. База данных также содержит четыре простые хранимые процедуры.

Создание форм и добавление элементов управления

Создайте проект для приложения Windows Forms и назовите его SimpleDataApp.

Visual Studio создает проект и несколько файлов, включая пустую форму Windows Forms с именем Form1.

Добавьте две формы Windows Forms в проект, чтобы он включал три формы, и назначьте им следующие имена:

Навигация

NewCustomer

FillOrCancel

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

Элементы управления "группа" и "надпись" обеспечивают большую ясность, но не используются в коде.

Форма навигации

Диалоговое окно

Форма NewCustomer

Добавление нового заказчика и размещение заказа

Форма FillOrCancel

заполнение или отмена заказов

Сохранение строки подключения

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

Строку подключения можно найти, щелкнув правой кнопкой мыши подключение данных о продажах в Обозреватель сервера и выбрав Свойства. Найдите свойство ConnectionString , а затем с помощью клавиш CTRL + A, CTRL + C выберите и скопируйте строку в буфер обмена.

В столбце имя введите connString .

В списке тип выберите (строка подключения).

В списке область выберите приложение.

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

снимок экрана со строкой подключения в Параметры. Settings

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

Написание кода для форм

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

Форма навигации

Форма навигации открывается при запуске приложения. Кнопка Добавить учетную запись открывает форму NewCustomer. Кнопка Выполнение или отмена заказов открывает форму FillOrCancel. Кнопка Выход закрывает приложение.

Преобразование формы навигации в начальную форму

если вы используете Visual Basic, в обозреватель решений откройте окно свойства , перейдите на вкладку приложение и выберите симпледатаапп. Navigation в списке начальных форм .

Создание автоматически создаваемых обработчиков событий

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

Если пропустить действие двойного щелчка в конструкторе и просто скопировать код и вставить его в файлы кода, не забудьте присвоить обработчику событий правильный метод. Это можно сделать в окне Свойства . Перейдите на вкладку события (воспользуйтесь кнопкой на панели инструментов с молнией) и найдите обработчик щелчка .

Добавление кода для логики формы навигации

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

Форма NewCustomer

если ввести имя клиента, а затем нажать кнопку создать учетную запись , форма NewCustomer создает учетную запись клиента, а SQL Server возвращает значение идентификатора в качестве нового идентификатора клиента. Затем можно разместить заказ для новой учетной записи, указав сумму и дату заказа и нажав кнопку поместить порядок .

Создание автоматически создаваемых обработчиков событий

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

Добавление кода для логики формы NewCustomer

Чтобы завершить логику формы NewCustomer, выполните следующие действия.

System.Data.SqlClient Перенесите пространство имен в область, чтобы не указывать полные имена его членов.

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

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

Форма FillOrCancel

Форма Филлорканцел запускает запрос для возврата заказа при вводе идентификатора заказа и нажатия кнопки найти заказ . Возвращенная строка отображается в сетке данных только для чтения. Можно пометить заказ как отмененный (X), если нажать кнопку отменить заказ или пометить заказ как заполненный (F), если нажать кнопку заполнить заказ . Если нажать кнопку найти порядок еще раз, появится обновленная строка.

Создание автоматически создаваемых обработчиков событий

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

Добавление кода для логики формы Филлорканцел

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

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

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

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

Тестирование приложения

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

Подключиться к базе данных Access ( MDB -файлу или ACCDB -файлу) можно с помощью Visual Studio. После того как определено подключение, источник данных отображается в окне Источник данных. После этого можно перетаскивать таблицы или представления в область конструктора.

если вы используете Visual Studio для подключения к базам данных Access, необходимо помнить, что версии Visual Studio до Visual Studio 2022 являются всеми 32-разрядными процессами.

это означает, что некоторые средства работы с данными в Visual Studio смогут подключаться только к базам данных Access с помощью 32-разрядных поставщиков данных.

если вы используете Visual Studio для подключения к базам данных Access, необходимо помнить, что версии Visual Studio до Visual Studio 2022 являются всеми 32-разрядными процессами. это означает, что некоторые инструменты для работы с данными в Visual Studio 2019 и более ранних версий смогут подключаться только к базам данных Access с помощью 32-разрядных поставщиков данных.

если вы используете Visual Studio 2022 для подключения к базам данных Access, необходимо помнить, что Visual Studio 2022 теперь является 64-битным процессом. это означает, что некоторые средства работы с данными в Visual Studio не смогут подключаться к базам данных Access с помощью 32-разрядных поставщиков данных.

если необходимо поддерживать 32-разрядные приложения, подключающиеся к базам данных Access, вы по-прежнему сможете создавать и запускать приложение с Visual Studio 2022. тем не менее, если необходимо использовать какие-либо инструменты Visual Studio данных, такие как обозреватель сервера, мастер источников данных или конструктор наборов данных, необходимо использовать более раннюю версию Visual Studio, которая все еще является 32-битным процессом. последняя версия Visual Studio, которая была 32-разрядным процессом, была Visual Studio 2019.

если вы планируете преобразовать проект в 64-разрядный процесс, рекомендуется использовать 64-разрядный ядро СУБД Microsoft access, также именуемый подсистемой подключения Access (ACE). Дополнительные сведения см. в разделе поставщик OLE DB для Jet и драйвер ODBC — 32-разрядные версии .

Предварительные требования

чтобы использовать эти процедуры, необходим проект Windows Forms или WPF и база данных access (accdb -файл) или база данных access 2000-2003 (mdb -файл). Выполните процедуру, соответствующую типу файла.

Создание набора данных для ACCDB-файла

Подключение к базам данных, созданным с помощью Microsoft 365, Access 2016, доступа 2013, access 2010 или access 2007 с помощью следующей процедуры.

откройте проект приложения Windows Forms или WPF в Visual Studio.

Чтобы открыть окно " Источники данных ", нажмите клавиши CTRL + Q, введите "данные" в поле поиска и выберите окно " Источники данных ". в меню вид выберите другие Windows > источники данных. Или нажмите клавиши SHIFT + ALT + D.

Снимок экрана: источники данных в поле поиска

В окне Источники данных выберите Добавить новый источник данных.

Откроется Мастер настройки источника данных .

Снимок экрана: мастер настройки источника данных

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

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

Снимок экрана: страница

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

Снимок экрана: страница

Откроется диалоговое окно Добавление соединения.

Снимок экрана: диалоговое окно

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

Снимок экрана: диалоговое окно

Введите имя пользователя и пароль (при необходимости) и нажмите кнопку ОК.

На странице Выбор подключения к данным нажмите кнопку Далее .

Снимок экрана страницы

Разверните узел Таблицы на странице Выбор объектов базы данных.

Снимок экрана: страница

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

Объект DataSet добавляется в проект, и таблицы и представления отображаются в окне Источники данных.

Снимок экрана: окно

Создание набора данных для ACCDB-файла

Подключение к базам данных, созданным с помощью Microsoft 365, Access 2016, доступа 2013, access 2010 или access 2007 с помощью следующей процедуры.

откройте проект приложения Windows Forms или WPF в Visual Studio.

Чтобы открыть окно " Источники данных ", нажмите клавиши CTRL + Q, введите "данные" в поле поиска и выберите окно " Источники данных ". в меню вид выберите другие Windows > источники данных. Или нажмите клавиши SHIFT + ALT + D.

Просмотр других окон

В окне Источники данных выберите Добавить новый источник данных.

Откроется Мастер настройки источника данных .

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

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

Снимок экрана: страница

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

Снимок экрана: страница

Откроется диалоговое окно Добавление соединения.

Снимок экрана: диалоговое окно

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

Снимок экрана: диалоговое окно

Введите имя пользователя и пароль (при необходимости) и нажмите кнопку ОК.

На странице Выбор подключения к данным нажмите кнопку Далее .

Снимок экрана страницы

Разверните узел Таблицы на странице Выбор объектов базы данных.

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

Объект DataSet добавляется в проект, и таблицы и представления отображаются в окне Источники данных.

Создание набора данных для ACCDB-файла

Подключение к базам данных, созданным с помощью Microsoft 365, доступа 2013, access 2010 или access 2007 с помощью следующей процедуры.

откройте проект приложения Windows Forms или WPF в Visual Studio.

Чтобы открыть окно " Источники данных ", нажмите клавиши CTRL + Q, введите "данные" в поле поиска и выберите окно " Источники данных ". в меню вид выберите другие Windows > источники данных. Или нажмите клавиши SHIFT + ALT + D.

В окне Источники данных выберите Добавить новый источник данных.

Откроется Мастер настройки источника данных .

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

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

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

Откроется диалоговое окно Добавление соединения.

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

Введите имя пользователя и пароль (при необходимости) и нажмите кнопку ОК.

На странице Выбор подключения к данным нажмите кнопку Далее .

Разверните узел Таблицы на странице Выбор объектов базы данных.

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

Объект DataSet добавляется в проект, и таблицы и представления отображаются в окне Источники данных.

Создание набора данных для MDB-файла

Подключение базы данных, созданные с помощью Access 2000-2003, с помощью следующей процедуры.

откройте проект приложения Windows Forms или WPF в Visual Studio.

в меню вид выберите другие Windows > источники данных.

В окне Источники данных выберите Добавить новый источник данных.

Откроется Мастер настройки источника данных .

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

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

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

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

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

Добавление файла базы данных Access для подключения

На странице Выбор подключения к данным нажмите кнопку Далее .

Разверните узел Таблицы на странице Выбор объектов базы данных.

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

Объект DataSet добавляется в проект, и таблицы и представления отображаются в окне Источники данных.

Дальнейшие действия

Только что созданный набор данных доступен в окне Источники данных . Теперь можно выполнить любую из следующих задач:

выберите элементы в окне источники данных и перетащите их в форму или область конструктора (см. раздел привязка Windows Forms элементов управления к данным в Visual Studio или общие сведения о привязке данных WPF).

Откройте источник данных в Конструкторе набора данных для добавления или изменения объектов, составляющих набор данных.

Добавьте логику проверки в ColumnChanging RowChanging событие или таблиц данных в наборе данных (см. раздел Проверка данных в наборах).

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

Распространенные задачи автоматизации

Открытие базы данных в Access

При автоматизации Microsoft Access перед выполнением необходимых действий, таких как печать отчетов, необходимо открыть базу данных. Чтобы открыть базу данных в экземпляре автоматизированного доступа, используйте методы Опенкуррентдатабасе или Опенакцесспрожект объекта Application. В Access одновременно можно открыть только одну базу данных. Для работы с другой базой данных можно использовать метод Клосекуррентдатабасе перед открытием другой базы данных.

Вы также можете использовать метод System. Runtime. InteropServices. Marshal. Биндтомоникер (у базы данных), чтобы открыть базу данных в экземпляре Access. Если база данных уже открыта в экземпляре Access, Биндтомоникер возвращает объект Application этого экземпляра. В противном случае Биндтомоникер запускает новый экземпляр Access и открывает указанную базу данных.

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

Печать или предварительный просмотр отчета Access

Чтобы просмотреть или распечатать отчет Access, вызывается метод ОткрытьОтчет объекта DoCmd. При вызове команды ОткрытьОтчет один из передаваемых аргументов определяет, будет ли отчет просматривается на экране, или отправляется ли он на принтер:

Обратите внимание, что аргумент View определяет, отображается ли отчет в Access, или отправляется ли он на принтер. Аргумент WhereCondition может ограничивать набор записей отчета, если используется допустимое предложение WHERE SQL (без слова WHERE.) Обратите внимание, что можно использовать System. Reflection. Missing. Value, чтобы пропустить все необязательные параметры объекта.

Если вы просматриваете отчет, не забудьте задать свойство Visible объекта Application, чтобы доступ отображался на экране. Таким образом, пользователь может просматривать отчет в окне Access.

Существует другой способ печати отчета или других объектов в базе данных. Используйте метод PrintOut объекта DoCmd. В этом примере вы выбираете отчет "сотрудники" в окне базы данных, а затем вызывается распечатка для печати выбранного объекта. Метод PrintOut позволяет указать аргументы, соответствующие диалоговому окну "Печать" в Access:

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

В Access 2002 появился объект Printer. Этот объект можно использовать для более легкого настройки параметров принтера Access, чем в предыдущих версиях Access. Пример использования объекта Printer в Access для печати отчета щелкните номер статьи ниже, чтобы просмотреть статью в базе знаний Майкрософт:

284286 способ сброса изменений объекта Application. Printer

Отображение и изменение формы Access

Теперь вы можете редактировать элементы управления в форме.

Диалоговые окна безопасности Access

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

Существует два типа безопасности в Microsoft Access: защищенные паролем базы данных и безопасность на уровне пользователей с помощью файла рабочей группы (System. mdw). Если вы пытаетесь открыть базу данных, защищенную паролем, появится диалоговое окно с запросом пароля базы данных. Безопасность на уровне пользователя отличается от защищенной паролем базы данных. При активации безопасности на уровне пользователя в Access отображается диалоговое окно входа с запросом имени пользователя и пароля, прежде чем пользователь сможет открыть любую базу данных в Access.

Диалоговые окна предотвращения паролей базы данных

Если вы открываете базу данных, защищенную паролем, диалоговое окно можно не использовать, указав пароль для метода Опенкуррентдатабасе:

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

ODB. Close фактически не закрывает базу данных в Access. Он только закрывает подключение DAO к базе данных, созданной с помощью объекта DBEngine. После использования метода Опенкуррентдатабасе соединение DAO больше не требуется. Обратите внимание на то, что код освобождает объекты oDB и Одбенгине. Эти объекты необходимо использовать для корректного завершения работы Access после завершения кода.

Предотвращение использования диалоговых окон входа в систему безопасности

Если в Access включена защита на уровне пользователей, пользователю предлагается диалоговое окно входа в систему с запросом имени пользователя и пароля. Имя пользователя и пароль не могут быть указаны с помощью объектной модели Access. Таким образом, если вы хотите избежать диалогового окна входа при автоматизации доступа, необходимо сначала запустить файл Msaccess. exe и указать параметры командной строки/user и/ПВД, чтобы указать имя пользователя и пароль. После этого можно использовать Жетактивеобжект или Биндтомоникер для получения объекта Application из запущенного экземпляра Access, чтобы можно было продолжить автоматизацию.

Автоматизация среды Access

Выпуск Microsoft Office Developer Edition включает инструменты разработчика Microsoft Office (MOD). С помощью MOD разработчики Access могут создавать и распространять приложения Access для пользователей, не имеющих розничной версии Access. Когда пользователь устанавливает приложение Access на компьютере, на котором не установлена розничная версия Access, устанавливается версия Access для среды выполнения. Среда выполнения Access установлена и регистрируется как розничная версия. Исполняемый файл также называется Msaccess. exe. Во время выполнения Access приложение Access можно запустить на клиентском компьютере, но среда Access не позволяет пользователю разрабатывать новые приложения или изменять макет существующих приложений.

Сбой выполнения сервера System. Runtime. InteropServices. Комексцептион (0x80080005).

Чтобы использовать следующий пошаговый пример, убедитесь, что установлена учебная база данных Northwind. По умолчанию Microsoft Access 2000 устанавливает учебные базы данных по следующему пути:

C:\Program Files\Microsoft Оффице\оффице\самплес

Microsoft Access 2002 использует следующий путь:

C:\Program Files\Microsoft Office\Office10\Samples

Microsoft Office Access 2003 использует следующий путь:

Чтобы убедиться, что учебная база данных Northwind установлена в Access 2002 или Access 2003, в меню Справка выберите пункт Примеры баз данных, а затем щелкните учебная база данных Northwind.

Закройте все экземпляры Access, выполняемые в данный момент.

Добавьте ссылку на библиотеку объектов Microsoft Access. Для этого выполните следующие действия:

  1. On the Project menu, click Add Reference.
  2. На вкладке COM найдите объект библиотека объектов Microsoft Access и нажмите кнопку Выбрать.

Note (Примечание ) В состав Microsoft Office 2003 входят основные сборки взаимодействия (PIA). Microsoft Office XP не включает PIA, но их можно скачать.

В диалоговом окне Добавление ссылок нажмите кнопку ОК, чтобы принять выбранные параметры.

В меню Вид выберите пункт Панель элементов, чтобы открыть панель элементов.

Добавление пяти элементов управления переключателем и одного элемента управления "Кнопка" в форму Form1.

Выберите все элементы управления переключателем, а затем задайте для свойства Size значение 150, 24.

Добавьте обработчики событий для события загрузки формы и для события Click элемента управления "Кнопка":

В представлении конструктора для Form1.cs дважды щелкните элемент Form1.

Обработчик события Load для формы создается и отображается в Form1.cs.

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

Дважды щелкните элемент Button1.

Обработчик события нажатия кнопки создается и отображается в Form1.cs.

В Form1.cs замените приведенный ниже код.

Добавьте следующий код в директивы using в Form1.cs:

Нажмите клавишу F5 для построения и запуска программы. Отображается форма Form1.

Щелкните Предварительный просмотр отчета, а затем нажмите Go!. Процедура Preview_Report предварительно просматривает отчет из базы данных Northwind. Закройте экземпляр Access, когда все будет готово к продолжению.

Выберите Печать отчета (безопасность), а затем нажмите кнопку Go!. В Print_Report_Securityной процедуре показано, как автоматизировать доступ и как избежать появления диалогового окна входа в систему, если включена защита на уровне пользователей. В этом примере предполагается, что для входа в систему по умолчанию передается пустой пароль администратора пользователей. Затем код печатает отчет в базе данных Northwind.

Щелкните Предварительный просмотр отчета (среда выполнения), а затем нажмите Go (перейти). В Preview_Report_Runtimeной процедуре показано, как автоматизировать среду выполнения Access для предварительного просмотра отчета в базе данных Northwind. Если розничная версия Access установлена, процедура по-прежнему будет работать правильно. Закройте экземпляр Access, когда все будет готово к продолжению.

Ссылки

Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы

Проектирование базы данных MS Access

Создадим в Microsoft Access базу данных Workers (рабочие) с одной таблицей Worker (рабочий).

Таблица содержит следующие столбцы:

  • w_id (идентификатор записи) — тип данных Счетчик;
  • w_name (имя) — тип данных Короткий текст;
  • w_position (должность) — тип данных Короткий текст;
  • w_salary (зарплата) — тип данных Числовой.

TextBox, ListBox и пять кнопок Button.

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

Также в окне свойств формы с помощью двойного щелчка мыши создадим обработчик события FormClosing, выполняющегося при закрытии формы.

Обработчик события закрытия формы - в нем будем закрывать соединение с БД Access

Файл с БД поместим в каталог \bin\Debug в папке с проектом.

Добавим в класс формы строковое поле string — строку подключения к БД. В строке подключения в значении параметра Data Source указывается путь к файлу с базой данных.

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

Далее добавим поле класса типа OleDbConnection. Экземпляр данного класса понадобится для установления соединения с базой данных MS Access.

В конструкторе класса создадим экземпляр OleDbConnection и установим соединение с БД. Т.е. при запуске программы будет устанавливаться соединение с Access.

В обработчике события закрытия формы добавим код, закрывающий соединение с базой данных. Таким образом при выходе из программы соединение с БД будет закрываться.

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

При нажатии кнопки SELECT2 будет выполняться запрос на получение многострочных данных из нескольких столбцов (по сути таблицы). Данные выводятся в ListBox.

listBox1 . Items . Add ( reader [ 0 ] . ToString ( ) + " " + reader [ 1 ] . ToString ( ) + " " + reader [ 2 ] . ToString ( ) + " " ) ;

string query = "INSERT INTO Worker (w_name, w_position, w_salary) VALUES ('Михаил', 'Водитель', 20000)" ;

Метод ExecuteNonQuery() класса OleDbCommand выполняет запрос и возвращает целое число типа int — количество строк затронутых выполняемым запросом. Данный метод подходит для запросов вставки INSERT, обновления UPDATE и удаления DELETE. Т.е. для тех, которые не возвращают данные.

Запрос обновления данных UPDATE:

Здравствуйте! Ваше видео мне очень помогло разобраться в некоторых вещах, спасибо большое!
Не могли бы вы подсказать такую вещь — у меня есть текстбокс из которого я беру значение и использую это значение в запросе
Пример:

private void btn_cl_del_Click(object sender, EventArgs e)

string query = «DELETE FROM Clients WHERE /> OleDbCommand command = new OleDbCommand(query, myConnection);

Проблема в том, что различается тип данных. Хоть в текстбокс и вводятся цифры, система воспринимает их как текст и поэтому не может произвести поиск по БД, чтобы выполнить запрос
Скажите, как с этим бороться?

Здравствуйте! Чтобы получить значение из текстового поля, используйте: textbox.Text

Здравствуйте! а что делать в случае если у меня 4 связанных таблицы? как сделать так чтобы с помощью запросов все они обрабатывались и были задействованы

Здравствуйте! Нужно использовать запросы JOIN.

Здравствуйте! Спасибо большое за видео, но есть один вопросик. Допустим есть таблица с полями Name (длинный текст) и Id ( короткий текст). Одну линейку из бд мы удаляем с помощью DELETE. У нас пускай были айди 1 2 3 4 5. Удалили третий. Теперь у нас 1 2 4 5. Как их обновить. Пробовал через UPDATE, но он разом проходит по всем линейкам БД. Таким образом получаем 1 1 1 1. Как решить эту проблему?

Здравствуйте! Когда выполняете запрос UPDATE нужно с помощью ключевого слова where указать к какой строке относится запрос (UPDATE TableName SET where А без where запрос изменит все строки в таблице.

Читайте также: