Разделы презентаций


Объектно-ориентированное программирование БД

Содержание

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

Слайды и текст этой презентации

Слайд 18_Объектно-ориентированное программирование БД

8_Объектно-ориентированное программирование БД

Слайд 2Макросы
Макросы содержат понятные названия макрокоманд. Окно макроса
изначально содержит поля

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

имени предопределенного макроса и условия для его выполнения. Покомандное выполнение макроса задается в режиме конструктора по команде Запуск – По шагам. Составим МакросСообщение, выводящий сообщение на экран.

Сложный макрос с созданным ранее макросом в качестве одной из макрокоманд. (макрос с именем AutoExec автоматически запускается в момент открытия БД).

Код макроса можно преобразовать в код VB по команде Сервис – Макрос – Преобразовать макросы:

Function Autoexec()
DoCmd.Hourglass True
DoCmd.RunMacro "МакросСообщение", , ""
DoCmd.OpenForm "тАбитуриенты", acNormal, "", "", , acNormal
End Function

МакросыМакросы содержат понятные названия макрокоманд. Окно макроса изначально содержит поля для выбора макрокоманд и примечания, но может

Слайд 34. Запустим форму Печать и построим условия для выбора отчета

с помощью нового макроса
3. Пример использования условий при выполнении команд

макроса. Разработаем форму для формирования отдельных отчетов. Форма содержит группу переключателей
4. Запустим форму Печать и построим условия для выбора отчета с помощью нового макроса3. Пример использования условий

Слайд 4Свободная форма
Создадим макрос, открывающий запрос на событии ПОСЛЕ ОБНОВЛЕНИЯ поля

формы.
Запрос с параметром предполагает точный ввод значений параметра. Выбор этих

значений из списка возможных – эффективнее. Создадим пустую форму и поместим на нее поле со списком, указав в качестве источника поле НазваниеВУЗА из таблицы тВУЗы. Не закрывая форму, создадим запрос, указав на выбор названия ВУЗа из значения поля формы
Свободная формаСоздадим макрос, открывающий запрос на событии ПОСЛЕ ОБНОВЛЕНИЯ поля формы.Запрос с параметром предполагает точный ввод значений

Слайд 5DO WHILE условие истинно
….
LOOP
DO
….
LOOP WHILE условие истинно
или
LOOP UNTIL условие

не станет ложно
ЦИКЛ С ПРЕДУСЛОВИЕМ
Выполнять, пока условие истинно
ЦИКЛ С ПОСТУСЛОВИЕМ
Выполнять,

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

FOR I = 1 TO n STEP m
….
NEXT

ЦИКЛ С ОПРЕДЕЛЕННЫМ ЗНАЧЕНИЕМ ПАРАМЕТРА
Выполнять, пока параметр цикла i не превысит n


DO WHILE условие истинно….LOOPDO ….LOOP WHILE условие истинноилиLOOP UNTIL условие не станет ложноЦИКЛ С ПРЕДУСЛОВИЕМВыполнять, пока условие

Слайд 6Операторы условной обработки
IF …
THEN


ELSE

END IF
IF

…THEN…

If rst.RecordCount <> 0 Then rst.MoveLast

IF Forms![Счет]![P0] <> ""
THEN
Forms![Счет]![P0] = Forms![Счет]![P0] + vbCrLf + me.Имя
ELSE
Forms![Счет]![P0] = me.Наименование
END IF

Вложенный условный оператор

IF (a <> 0 Or a <> Null) THEN
IF b>0 THEN
b=sqrt(b)
ELSE
b=sqrt(abs(b))
END IF
END IF

Конструкция WITH…END WITH

WITH my_recordset
.Edit
![Выбор] = False
.Update
.MoveNext
END WITH

Конструкция WITH полезна при многократном обращении к форме по ее полному имени Forms!Абитуриенты!Год_рождения.Visible или
WITH Forms!Абитуриенты
!Год_рождения.Visible=FALSE
!Адрес.Visible=TRUE
END WITH


Слайд 7Оператор выбора SELECT и безусловного перехода GOTO
Оператор безусловного перехода GOTO

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

цикла
1:
y = InputBox("Ваш возраст ?", "Окно ввода")
Select Case y
Case Is <= 0: MsgBox ("Ошибка")
GoTo 1
Case Is < 55: i = MsgBox("Ваш возраст " & y & ". Вам рано на пенсию")
Case Is >= 55: i = MsgBox("Ваш возраст " & y & ". Вы на пенсии")
End Select
Оператор выбора SELECT и безусловного перехода GOTOОператор безусловного перехода GOTO метка используется для изменения последовательности выполнения операторов,

Слайд 8Вызов процедуры
Sub main()
a = InputBox("Введите коэфф. a")

b = InputBox("Введите коэфф. b")
c = InputBox("Введите коэфф.

c")
Do While a <> 0
Call kv_kor (a, b, c) ‘вызов процедуры
Loop
End Sub

Sub kv_kor (a, b, c) ‘ процедура
d = b * b - 4 * a * c формируется
If d < 0 Then в составе модуля
MsgBox ("Нет решения")
GoTo 1
Else
x1 = (-b + Sqr(d)) / (2 * a)
x2 = (-b – Sqr(d)) / (2 * a)
MsgBox ("x1=" & x1 & ", x2=" & X2)
End If
1:
a = InputBox("Введите коэфф. a")
b = InputBox("Введите коэфф. b")
c = InputBox("Введите коэфф. c")
End Sub
Вызов процедурыSub main()  a = InputBox(

Слайд 9Модули - процедуры и функции
Модуль - совокупность объявлений и процедур,

объединенных в единое целое. Различают стандартный модуль, модуль формы и

модуль отчета.
Стандартный модуль создается как объект БД и может выполнять любые вычисления. Модуль форм или отчета разрабатывается для обработки событий форм или отчетов. Каждый модуль состоит из области описания и процедур.
Процедура представляет собой последовательность операторов. Входящие в модуль процедуры объединены общей областью описания.
Процедуры делятся на две категории: подпрограммы и функции. Каждая процедура может быть вызвана из любого модуля, а функция - из таких объектов, как форма, запрос или отчет. Для передачи значений из вызывающих операторов в вызываемые процедуры служат аргументы.
Наряду с общедоступными процедурами Public (по умолчанию), существуют локальные процедуры Private, доступные только в том модуле, в котором они описаны.

Обращение к функции выполняется по ее имени на вкладке СОБЫТИЕ вместо выражения [Процедура обработки события], например,
=имя_функции()
Модули - процедуры и функцииМодуль - совокупность объявлений и процедур, объединенных в единое целое. Различают стандартный модуль,

Слайд 10Переменные
Переменные, объявленные без использования слова AS, принимают тип VARIANT (16

байт для десятичных чисел и 22 байта для строк !),

например, переменная “a” в объявлении:
DIM а, b AS STRING
Переменные, объявленные в процедуре или функции, по умолчанию являются локальными. Они объявляются оператором DIM. Оператор PRIVATE явно объявляет локальную переменную для процедуры или модуля.
Переменную, значение которой можно использовать во всех процедурах модуля, объявляют со словом PUBLIC в разделе DECLARATIONS модуля.

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

Директивы кода:
Option Explicit - требование обязательного объявления переменных.
Option Compare Database – метод сравнение текстовых строк в процессе их сортировки.

ПеременныеПеременные, объявленные без использования слова AS, принимают тип VARIANT (16 байт для десятичных чисел и 22 байта

Слайд 11События
Объекты на формах и отчетах имеют СВОЙСТВА (например, скрытое поле)

и МЕТОДЫ (например, поле обновить). Обращаться к ним можно в

окне свойств объекта и в коде VBA, открываемом при выборе события (Click, DblClick), связаного с объектом (поле события может содержать имя макроса).
Если поле свойства события содержит строку [Процедура обработки события], то VBA выполнит процедуру обработки события, которая имеет вид
Sub Объект_Событие()… End Sub

Открытие формы включает события Open (открытие), Load (загрузка), Activate (включение).
Для отмены события используется аргумент Cancel. Если ему присвоить True, то событие отменяется. Можно отменить события: BeforeDelConfirm (до подтверждения Del), BeforeInsert (до вставки), BeforeUpdate (до обновления), DblClick (двойное нажатие кнопки), Delete (удаление), Error (ошибка), Exit (выход), Format (форматирование), Open (открытие), Print (печать), UnLoad (выгрузка).

Объекты Screen (свойство ActiveControl) : ActiveForm (активная форма), ActiveReport (активный отчет) и PreviousControl (предыдущий элемент управления).
Например, Screen.PreviousControl.SetFocus (установка фокуса на предыдущий объект).

СобытияОбъекты на формах и отчетах имеют СВОЙСТВА (например, скрытое поле) и МЕТОДЫ (например, поле обновить). Обращаться к

Слайд 12Методы RunComman и DoCmd
1. Метод RunCommand используется для выполнения команд

меню/панелей инструментов с вызовом диалоговых окон.
[DoCmd].RunCommand command или [Application].RunCommand command или

RunCommand command 
где command - это соответствующая команда меню или панели инструментов. Префикс [Application] или [DoCmd] не обязателен.

2. Метод DoCmd выполняет эти же действия с заданием аргументов команды без необходимости использования диалоговых окон команд.
RunCommand acCmdPrint ' вывод диалогового окна "Печать".
RunCommand acCmdSelectRecord  ' выбор текущей записи (команда Выделить запись из меню Правка)
DoCmd.PrintOut acSelection    ' печать текущей записи
Вызов макросов с помощью команды DoCmd:
DoCmd DoMenuItem A_FormBar, A_EditMenu, A_UndoField, , A_Menu_Ver20 - восстановление записи.
DoCmd GoToRecord , , A_NEWREC - переход к новой записи.
DoCmd Close - закрытие текущего объекта.
DoCmd Quit - закрытие приложения.
DoCmd DoMenuItem A_FormBar, A_EditMenu, 10, , A_MenuVer20 - вывод на экран диалога Поиск.
Методы RunComman и DoCmd1. Метод RunCommand используется для выполнения команд меню/панелей инструментов с вызовом диалоговых окон.[DoCmd].RunCommand command

Слайд 13Модули
3. В свойствах формы событие ТЕКУЩАЯ ЗАПИСЬ содержит код:
Private Sub

Form_Current()
On Error Resume Next
If Me![фото] "" Then


Me.Рисунок.Picture = Me.фото
Else
Me.Рисунок.Picture = ""
End If
End Sub

1. Столбчатая форма для таблицы тАбитуриенты. В поле Фото записано имя файла с фото. Хранение не файла, а его имени в файловой системе эффективнее, т.к. уменьшает размер БД.

2. На форму поместим поле ФОТО со свойством ВЫВОД НА ЭКРАН=НЕТ и объект РИСУНОК с именем РИСУНОК.

Модули3. В свойствах формы событие ТЕКУЩАЯ ЗАПИСЬ содержит код:Private Sub Form_Current() On Error Resume NextIf Me![фото]

Слайд 14Код события Текущая запись
Точка останова
Шаг отладки кода (F8)
Подручный процессор
Просмотр

значений переменных
Текущий объект
Окно отладки программного кода

Код события Текущая записьТочка остановаШаг отладки кода (F8)Подручный процессор Просмотр значений переменныхТекущий объектОкно отладки программного кода

Слайд 15“Полосатый” отчет
Чередование темных и светлых полос задается на событии ФОРМАТИРОВАНИЕ

выделенного мышкой заголовка ОБЛАСТИ ДАННЫХ отчета (Свойство BACKCOLOR означает цвет

фона) :
Dim BackForth As Variant
Private Sub ОбластьДанных_Format(Cancel As Integer, FormatCount As Integer)
Const ColorWhite = 16777215
Const ColorGray = 12632256
Select Case BackForth
Case True
Me. ОбластьДанных.BackColor = ColorWhite
Case False
Me. ОбластьДанных.BackColor = ColorGray
End Select
BackForth = Not BackForth
End Sub
“Полосатый” отчетЧередование темных и светлых полос задается на событии ФОРМАТИРОВАНИЕ выделенного мышкой заголовка ОБЛАСТИ ДАННЫХ отчета (Свойство

Слайд 16Бегущая строка
Private Sub Form_Timer()
Select Case Me.TimerInterval
Case 200
Me.Надпись2.Visible = True
Me.Надпись1.Visible =

False
Me.TimerInterval = Me.TimerInterval + 200
Case 400
Me.Надпись3.Visible = True
Me.Надпись2.Visible = False
Me.TimerInterval

= Me.TimerInterval + 200
Case 600
Me.Надпись4.Visible = True
Me.Надпись3.Visible = False
Me.TimerInterval = Me.TimerInterval + 200
Case 800
Me.Надпись1.Visible = True
Me.Надпись4.Visible = False
Me.TimerInterval = 200
End Select
End Sub

Для демонстрации действий с таймером создадим на форме надписи с именами НАДПИСЬ1, НАДПИСЬ2, НАДПИСЬ3, НАДПИСЬ4. В свойствах первой надписи на вкладке МАКЕТ параметр ВЫВОД НА ЭКРАН установим в значение ДА, у остальных надписей - в значение НЕТ. На событие формы ИНТЕРВАЛ ТАЙМЕРА указываем 200 (миллисекунд), а в поле ТАЙМЕР наберем код:

Процедура выполняется по истечении времени, указанного в поле ИНТЕРВАЛ ТАЙМЕРА. Оператор Select Case … End Select проверяет достижение таймером значений и поочередно задает для надписей режимы видимости (свойство Visible). По истечении 800 миллисекунд таймеру вновь задается 200 миллисекунд для бесконечного цикла таймера.

Бегущая строкаPrivate Sub Form_Timer()Select Case Me.TimerIntervalCase 200Me.Надпись2.Visible = TrueMe.Надпись1.Visible = FalseMe.TimerInterval = Me.TimerInterval + 200Case 400Me.Надпись3.Visible =

Слайд 17Экспорт данных Access в документ Word
Создадим форму для контроля вывода

данных на печать. На диске С создадим шаблон заполняемого из

БД документа “C:\letter.doc”

Private Sub Кнопка10_Click()
Dim wdd As Word.Document
Dim wda As Word.Application
Dim db As Database
Set db = CurrentDb()
Dim str_sql As String
'проверяем вариант отчета в Word
Select Case Me.Группа0.Value
Case 1:
'открываем документ c готовым шаблоном
Set wdd = GetObject("C:\letter.doc")
'создаем указатель на приложение
Set wda = wdd.Parent
'делаем приложение видимым
wda.Visible = True
'размер шрифта, установленный по умолчанию в MS WORD

a = wda.Selection.Font.Size

' можно создать строку статического запроса
' str_sql = "SELECT тАбитуриенты.кодАБ,” _
‘ & “тАбитуриенты.Фамилия, тАбитуриенты.Имя, “
‘ & “ тАбитуриенты.Отчество, тВУЗы.НазваниеВУЗа, “
‘ & “тВУЗы.Телефон, тВУЗы.Рейтинг FROM тВУЗы" _
' & " INNER JOIN (тАбитуриенты INNER JOIN “ _
‘ & “тСвязьАбВУЗ ON тАбитуриенты.кодАБ =“ _
‘ & “тСвязьАбВУЗ.КодАб) ON” _
‘ & “ тВУЗы.КодВУЗа = тСвязьАбВУЗ.КодВуза"
' Set rst = db.OpenRecordset(str_sql, dbOpenDynaset, dbReadOnly)

' можно использовать существующий в БД запрос
Set rst = db.OpenRecordset("АбВУЗ", dbOpenDynaset, dbReadOnly)

Экспорт данных Access в документ WordСоздадим форму для контроля вывода данных на печать. На диске С создадим

Слайд 18 j = j

+ 1
kolz =

0
End If
Id = rst.кодАБ
For i = 1 To 3
.Cell(j, i) = Nz(rst.Fields(i),"")
Next i
End If
.Cell(j, 1).Select
wda.Selection.InsertRowsBelow 1
j = j + 1
For i = 4 To 6
.Cell(j, i) = Nz(rst.Fields(i),"")
Next i
j = j + 1
kolz = kolz + 1
rst.MoveNext

Экспорт в MS WORD с использованием встроенной команды
DoCmd.OutputTo acOutputQuery, "АбВУЗ", acFormatRTF, "document.doc", True
' acOutputTable
If Me.ActiveControl.Controls.Count <> 0 Then
clt = Me.ActiveControl.ControlType
End If

Loop
.Cell(j, 1).Select
wda.Selection.InsertRowsBelow 1
wda.Selection.Font.Bold = True
wda.Selection.Font.Italic = True
wda.Selection.Font.Size = 14
.Cell(j, 1) = "ВУЗов - " & kolz
wda.Selection.Font.Bold = False
wda.Selection.Font.Italic = False
wda.Selection.Font.Size = a
wda.Selection.MoveDown
End If
End With
Case 2:
End Select
Set wdd = Nothing
Set wda = Nothing
End Sub

'1-я табл. в открытом документе WDD
Set tbl = wdd.Tables(1)
With tbl
j = 2
rst.MoveFirst
Id = 0
kolz = 0
If rst.RecordCount <> 0 Then
Do Until rst.EOF
If rst.кодАБ <> Id Then
If Id <> 0 Then
.Cell(j, 1).Select
‘ссылка на приложение
wda.Selection.InsertRowsBelow 1
wda.Selection.Font.Bold = True
wda.Selection.Font.Italic = True
wda.Selection.Font.Size = 14
j = j + 1
.Cell(j, 1) = "ВУЗов - " & kolz
.Cell(j, 1).Select
wda.Selection.InsertRowsBelow 1
wda.Selection.Font.Bold = False
wda.Selection.Font.Italic = False
wda.Selection.Font.Size = 12

j = j + 1

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика