Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Разработка клиентского приложения



 

Цель: научиться самостоятельно создавать клиентское приложение с помощью базы данных Access и языка программирования Visual Basic For Application.

 

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

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

 

Передача команд в базу данных SQL с помощью запроса к серверу

 

Запросы к серверу передают команды непосредственно на сервер базы данных ODBC (например, Microsoft SQL Server). Запросы к серверу позволяют работать непосредственно с таблицами на сервере, не прибегая к их связыванию.

1. В окне базы данных выберите значок Запросы в списке Объекты и нажмите кнопку Создать на панели инструментов окна базы данных.

2. В диалоговом окне Новый запрос выберите в списке строку Конструктор и нажмите кнопку OK.

3. Не добавляя таблицы или запросы, нажмите в диалоговом окне Добавление таблицы кнопку Закрыть.

4. В меню Запрос выберите команду Запрос SQL и подкоманду Запрос к серверу.

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

6. В окне свойств запроса укажите в свойстве Строка подключения ODBC (ODBCConnectStr) сведения, необходимые для подключения к внешней базе данных. Введите строку подключения самостоятельно или нажмите кнопку построителя и введите данные о сервере, к которому необходимо подключиться. За сведениями о синтаксисе запроса следует обращаться к документации сервера базы данных SQL, на который посылается запрос.

7. Если запрос не принадлежит к типу запросов, в которых возвращаются записи, выберите для свойства Возврат записей (ReturnsRecords) значение Нет.

8. Введите инструкцию SQL в окно запроса к серверу.

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

Внимание! При преобразовании запроса к серверу в запрос другого типа, например, в запрос на выборку, введенная инструкция SQL будет потеряна.

Примечания

· Запросы к серверу рекомендуется использовать для запуска сохраненных процедур на сервере ODBC.

· Если в свойстве Строка подключения ODBC (ODBCConnectStr) не указана строка подключения или если существующая строка удалена, Microsoft Access по умолчанию использует строку " ODBC; ". В этом случае при каждом запуске запроса будет выводиться приглашение ввести необходимые для подключения сведения.

· В некоторых запросах к серверу наряду с данными возвращаются сообщения. При заданном для свойства Таблица сообщений (LogMessages) значении Да. Microsoft Access создает таблицу, в которую записываются возвращаемые сообщения. Имя этой таблицы образуется из имени пользователя, к которому добавляется дефис ( - ) и порядковый номер, отсчет которых начинается с 00. Например, для пользователя, получившего по умолчанию имя «ADMIN», таблицы возвращаемых сообщений будут иметь имена «ADMIN-00», «ADMIN-01» и т. д.

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

 

Создание запроса к серверу с параметром. Пример.

Рассмотрим пример.

Пусть у нас имеется форма «dbo_Платные_услуги», с помощью которой библиотекарь осуществляет оформление платной услуги (рисунок 1)

Рисунок 1 – Форма «dbo_Платные_услуги»

Значения, вводимые в поля «Табельный_номер», «Читательский_номер», «Книга», «Сумма» и «дата_услуги» при нажатии на кнопку с изображением стрелки должны заноситься в таблицу «Платные_услуги», т.е. при нажатии на данную кнопку должна вызываться процедура на добавление новых данных в таблицу «Платные_услуги».

Значения поля «Сумма» рассчитывается в зависимости от введенных значений в полях «Часов», «Дней» и значений переключателей «Студент» и «Преподаватель». Код программы присвоения полю «Сумма» значения приведен ниже.

Листинг 1

Private Sub Переключатель48_GotFocus() ‘Для студента

On Error GoTo Err_ Переключатель48_Click

Dim q As Integer

Dim w As Integer

Поле40.SetFocus

q = Поле40.Text ‘Считываем значение поля «Дней»

Поле42.SetFocus

w = Поле42.Text ‘Считываем значение поля «Часов»

Поле44.Value = w * 700 + q * 170 ‘Подсчитываем значение поля «Сумма»

Exit_ Переключатель48_Click:

Exit Sub

Err_ Переключатель48_Click:

MsgBox " Не указан срок услуги! "

Resume Exit_ Переключатель48_Click

End Sub

 

Private Sub Переключатель46_GotFocus() ‘Для преподавателя

On Error GoTo Err_ Переключатель46_Click

Dim q As Integer

Dim w As Integer

Поле40.SetFocus

q = Поле40.Text ‘Считываем значение поля «Дней»

Поле42.SetFocus

w = Поле42.Text ‘Считываем значение поля «Часов»

Поле44.Value = w * 1000 + q * 200 ‘Подсчитываем значение поля «Сумма»

Exit_ Переключатель46_Click:

Exit Sub

Err_ Переключатель46_Click:

MsgBox " Не указан срок услуги! "

Resume Exit_ Переключатель46_Click

End Sub

 

После того как все поля будут заполнены можно заносить данные в таблицу «Платные_ услуги». Код программы, вызывающий процедуру добавления новой записи, приведен ниже.

Листинг 2

Private Sub Кнопка11_Click()

On Error GoTo Err_Кнопка11_Click

Dim stDocName As String

Dim dbs As Database, qdf As QueryDef, strSQL As String

Dim TabNomer As String

Dim ChitNomer As String

Dim dateYcl As String

Dim Cymma As String

Set dbs = CurrentDb

Set dbs = CurrentDb

Табельный_номер.SetFocus

TabNomer = Табельный_номер.Text ‘значение табельного номера

Поле44.SetFocus

ChitNomer = Поле44.Text ‘значение читательского номера

Дата_услуги.SetFocus

dateYcl = Дата_услуги.Text ‘значение даты услуги

ПолеСоСписком20.SetFocus

Cymma = ПолеСоСписком20.Text ‘значение суммы

strSQL = " INSERT INTO dbo_Заказы VALUES (TabNomer, ChitNomer, Cymma, dateYcl) "

‘текст запроса.

dbs.QueryDefs.Delete (" 114" ) ‘удаление существующего запроса

Set qdf = dbs.CreateQueryDef(" 114", strSQL) ‘вызов выполнения запроса с именем 114, и ‘текстом запроса strSQL.

Set dbs = Nothing обнуляет значение текущей базы данных.

 

DoCmd.GoToRecord, , acNext ‘очищает поля на форме

 

Exit_Кнопка11_Click: ‘обработка ошибок

Exit Sub

Err_Кнопка11_Click:

MsgBox Err.Description

Resume Exit_Кнопка11_Click

End Sub

 

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

Рисунок 2 ­– Получение отчета за месяц

 

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

Код программы выполняющей построение отчета приведен ниже.

Листинг 3

Private Sub Кнопка27_Click()

On Error GoTo Err_Кнопка27_Click

Dim stDocName As String

Dim dbs As Database, qdf As QueryDef, strSQL As String

Dim strdat As Integer

Dim strdate As String

Set dbs = CurrentDb ‘возвращает текущую базу данных

ПолеСоСписком25.SetFocus

strdate = ПолеСоСписком25.Text ‘номер месяца, выбранный из списка

strSQL = " SELECT dbo_Платные_услуги.табельный_номер, dbo_Платные_услуги.Сумма, dbo_Платные_услуги.читательский_номер, dbo_Платные_услуги.Дата_услуги FROM dbo_Платные_услуги WHERE Month(dbo_Платные_услуги.Дата_услуги)=" + strdate

‘текст запроса. Month(< Дата_услуги> возвращает числовое значение номера месяца ‘указанной даты.

dbs.QueryDefs.Delete (" услуги" ) ‘Команда удаления существующего запроса. При первом ‘вызове строка должна быть закоментированна.

Set qdf = dbs.CreateQueryDef(" услуги", strSQL) ‘создает запрос с именем «Услуги» и текстом услуги, хранящемся в строке strSQL.

DoCmd.OpenReport " услуги", acPreview ‘Открывает отчет с именем «Услуги» для ‘просмотра

Set dbs = Nothing ‘обнуляет значение текущей базы данных.

 

Exit_Кнопка27_Click: ‘обработка ошибок

Exit Sub

Err_Кнопка27_Click:

MsgBox Err.Description

Resume Exit_Кнопка27_Click

End Sub

Создание отчета.

Чтобы создать отчет с помощью мастера необходимо:

1. В разделе Отчеты выбрать «Создание отчета с помощью мастера.

Рисунок 3 – Объект «Отчеты»

 

2. В появившемся окне выбрать поля для отчета. В разделе «Таблицы и запросы» выбрать необходимый запрос. Переместить поля запроса из раздела «Доступные поля» в раздел «Выбранные поля» с помощью клавиш > и > >. Нажать «Далее».

3. На шаге третьем выбрать порядок сортировки полей отчета. Нажать «Далее».

4. На четвертом шаге выбрать макет для отчета и ориентацию отчета. Нажать «Далее».

5. Выбрать стиль заголовка отчета. Нажать «Далее».

6. Нажать «Готово».

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

Рисунок 4 – Создание отчета. Шаг 1

 

Создание перехода между формами:

 

1. Отрыть исходную форму в конструкторе. На панели инструментов вызвать значок кнопка.

2. Поместить кнопку на форму. Появится мастер создания формы. Здесь выбрать категорию Работа с формой, а в действиях Открытие формы.

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

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

 

Создание зависимостей между полями со списком

 

Пусть на форме «dbo_Платные_услуги» при выборе фамилии из списка фамилий сотрудника, табельный номер должен выставляться автоматически. Сделать это можно следующим образом:

1. Добавить на форму элемент ПолеСоСписком, значения которого выбираются из поля «Табельный_номер» таблицы «Сотрудники».

2. Добавить на форму элемент ПолеСоСписком, содержащим значения которого выбираются из поля «Фамилия» и «Табельный_номер» таблицы «Сотрудники». При этом мастера добавления предложит вам скрыть ключевой столбец «Табельный_номер».

3. Через меню свойства вызвать обработку события для поля «Фамилия» и в программу обработки внести следующий код

Private Sub Фамилия_Dirty(Cancel As Integer)

Табельный_номер.Value = Фамилия.Value

End Sub

 

Автоматический ввод даты при получении курсора

 

Чтобы дата в каком либо поле автоматически выставлялась, необходимо для этого поля написать следующий код:

Private Sub Дата_услуги_GotFocus()

Дата_услуги.Value = Date

End Sub

Где Дата_услуги поле, значению которого автоматически присваивается значение текущей даты

 

Автоматический старт формы при запуске

Очень удобно при запуске базы данных получать форму сразу. То есть открывается база данных и автоматом открывается форма. Для этого нужно зайти в меню " Сервис -> Параметры запуска".

Рисунок 5 – меню Сервис

 

Здесь нужно выбрать какая форма у вас будет выводиться при запуске приложения. А также изменить другие параметры записка приложения.

Рисунок 5 – Выбор параметров запуска

 

Вопросы:

1. Как создаются запросы к серверу?

2. Как создать запрос, который будет срабатывать при нажатии на какую-либо кнопку на пользовательской форме?

3. С помощью какой макрокоманды создается и передается на сервер запрос?

4. Для чего нужна команда CurrentDb?

5. Как создать отчет с помощью мастера?

6. Как установить автоматический ввод даты?

7. Можно ли создавать поля, значение одного из которых будет зависеть от значения другого поля?

8. Можно ли изменить отчет, созданный с помощью мастера?

9. Как создавать переходы между формами?

10. Как установить автоматический вывод формы при запуске приложения?


Поделиться:



Популярное:

  1. Автоматизация работ в офисных приложениях
  2. Анализ полученных результатов и разработка предложений
  3. Анализ совместимости приложения
  4. В качестве приложения к курсовой работе может быть баланс предприятия (Ф. №1), отчет о прибылях и убытках (Ф. №2) и справки к ним.
  5. В приложения надо выносить объемные таблицы, которые занимают 1,5-2 и более страниц, а также не заполненные макеты таблиц.
  6. Возведение насыпей, разработка выемок скомплектованными машинно-дорожными отрядами.
  7. ВРЕЗКА 2.2. РАЗРАБОТКА НАИБОЛЕЕ ЭФФЕКТИВНОЙ АНКЕТЫ
  8. Гипотезы исследования. Разработка соответствующих макетов таблиц
  9. Глава 5. Разработка конструкций
  10. Детальная разработка всасывающей турбины
  11. И РАЗРАБОТКА ПРОБЛЕМ ИЗУЧЕНИЯ СТРУКТУРЫ УЧЕНИЯ
  12. Издательская деятельность II. И. Новикова («Московские ведомости», приложения и «Прибавления» к ним, «Санкт-Петербургские ученые ведомости», «Утренний свет»,


Последнее изменение этой страницы: 2017-03-08; Просмотров: 622; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.063 с.)
Главная | Случайная страница | Обратная связь