Лабораторные работы по СУБД
1 1 1 1 1 1 1 1 1 1 Рейтинг 0.00 (0 Голоса)

Лабораторная работа Объектная модель доступа к данным DAO.

Цель: Ознакомиться с объектами объектной модели доступа к данным DAO.

Условие задания:

Создать форму Закладки.

Форма в режиме Формы представлена на рис. 1.

Форма Закладки в режиме Формы

Рис.1. Форма Закладки в режиме Формы

Спецификация элементов управления


п/п

Элемент
управления

Имя

Назначение

1

2

3

4

1

Список

СписокКлиентов

Для формирования списка Клиентов поставленных на контроль

2

Кнопка

cmdClose

Закрытие формы Закладки

3

Кнопка

cmdDelete

Удаление из списка СписокКлиентов выделенного Клиента

4

Кнопка

cmdClear

Очистка списка СписокКлиентов от всех данных

1

2

3

4

5

Кнопка

cmdSaveInList

Сохранение в таблице Закладки данных из списка СписокКлиентов

6

Кнопка

cmdLoadList

Загрузка из таблицы Закладки данных в список СписокКлиентов

7

Кнопка

cmdView

Открытие формы Клиенты для просмотра данных о клиенте, на котором установлен фокус в подчиненной форме Закладки_1

8

Подчиненная форма/отчет

Закладки_1

Для отображения данных из запроса Закладки_1

9

Кнопка

cmdFind

Переход в подчиненной форме Закладки_1 к клиенту на котором установлен фокус ввода в списке СписокКлиентов

10

Кнопка

cmdAdd

Добавление в список СписокКлиентов клиента на котором установлен фокус ввода в подчиненной форме Закладки_1

Примеры процедур обработки событий:

Модуль Global (область видимости весь проект):

'----------------------------------------------------------------------

Function TableExist(strTableName As String) As Boolean

Dim db As Database

Dim tdf As TableDef

TableExist = False

Set db = CurrentDb

For Each tdf In db. TableDefs

If tdf. Name = strTableName Then

TableExist = True

Exit Function

End If

Next

Set db = Nothing

End Function

'------------------------------------------------------------------------

Модуль формы Закладки:

'------------------------------------------------------------------------

Private Sub cmdClear_Click()

'очистка списка закладок

With СписокКлиентов

.Value = Null

.RowSource = ""

End With

End Sub

'------------------------------------------------------------------------

Private Sub cmdClose_Click()

DoCmd. Close

End Sub

'------------------------------------------------------------------------

Private Sub cmdDelete_Click()

'удаление клиента из списка закладок

With СписокКлиентов

If. ListCount = 0 Then

MsgBox "В списке закладок нет ни одного клиента", _

vbExclamation, "Администратор!"

ElseIf IsNull(.Value) Then

MsgBox "Необходимо выбрать клиента в списке", _

vbInformation, "Администратор!"

Else

If vbYes = MsgBox("Удалить из списка закладок" _

& vbCrLf & "клиента: " & .Column(1, .ListIndex), _

vbQuestion + vbYesNo + vbDefaultButton2, _

"Администратор!") Then

.RemoveItem .ListIndex

If Not. ListCount = 0 Then

.Value = .ItemData(0)

.Selected(0) = True

End If

End If

End If

End With

End Sub

'------------------------------------------------------------------------

Private Sub cmdFind_Click()

'переход к клиенту в соответствии с закладкой

With СписокКлиентов

If Not. ListCount = 0 Then

If. ListCount = 1 Then

.Value = .ItemData(0)

End If

If Not IsNull(.Value) Then

With Закладки_1

.SetFocus

!КодКлиента. SetFocus

End With

DoCmd. FindRecord. Value

Else

MsgBox "Необходимо выбрать клиента в списке", _

vbInformation, "Администратор!"

End If

Else

MsgBox "Отсутствуют клиенты в списке закладок", _

vbExclamation, "Администратор!"

End If

End With

End Sub

'------------------------------------------------------------------------

Private Sub cmdAdd_Click()

'добавление клиента в список закладок

Dim i As Integer

If Not IsNull(Закладки_1!КодКлиента) Then

With СписокКлиентов

For i = 0 To. ListCount - 1

If. ItemData(i) = Закладки_1!КодКлиента Then

.Value = .ItemData(i)

.Selected(i) = True

MsgBox "Клиент: " _

& vbCrLf & .Column(1, i) _

& vbCrLf & "уже занесен в список закладок", _

vbInformation, "Администратор!"

Exit Sub

End If

Next i

'добавить клиента в список закладок

'с размещением в начале списка

.AddItem Item:=Закладки_1!КодКлиента & ";" _

& Закладки_1!Название & ";", Index:=0

'выделить первую строку в списке

.Selected(0) = True

.Value = .ItemData(0)

End With

Else

MsgBox "Необходимо выбрать клиента", _

vbInformation, "Администратор!"

End If

End Sub

'------------------------------------------------------------------------

Private Sub cmdLoadList_Click()

'загрузка сохраненного списка закладок

Dim db As Database

Dim rst As DAO. Recordset

If TableExist("Закладки") Then

If vbYes = MsgBox("Загрузить сохраненный список закладок", _

vbYesNo + vbQuestion + vbDefaultButton2, _

"Администратор!") Then

Set db = CurrentDb

Set rst = db. OpenRecordset("Закладки")

If Not rst. RecordCount = 0 Then

cmdClear_Click

Do While Not rst. EOF

СписокКлиентов. RowSource = СписокКлиентов. RowSource _

& rst! КодКлиента & ";" & rst! Название & ";"

rst. MoveNext

Loop

Else

MsgBox "Отсутствуют сохраненные закладки", vbExclamation, _

"Администратор!"

End If

rst. Close

End If

Else

MsgBox "Отсутствуют сохраненные закладки", vbExclamation, _

"Администратор!"

End If

Set db = Nothing

End Sub

'------------------------------------------------------------------------

Private Sub cmdSaveInList_Click()

'сохранение списка закладок

Dim db As Database

Dim tdf As TableDef

Dim fld As Field

Dim rst As DAO. Recordset

Dim i As Integer

If Not СписокКлиентов. ListCount = 0 Then

If vbYes = MsgBox("Сохранить список закладок", _

vbYesNo + vbQuestion + vbDefaultButton2, _

"Администратор!") Then

Set db = CurrentDb

If Not TableExist("Закладки") Then

'создать таблицу Закладки

Set tdf = db. CreateTableDef("Закладки")

With tdf

'создать поле КодКлиента и добавить его

'в семейство полей

.Fields. Append .CreateField("КодКлиента", dbText, 5)

'создать поле Название и добавить его семейство полей

.Fields. Append .CreateField("Название", dbText, 40)

End With

With db. TableDefs

.Append tdf              'добавить таблицу

.Refresh                  'обновить семейство таблиц

End With

Set fld = Nothing

Set tdf = Nothing

Else

'удалить ВСЕ записи из таблицы Закладки

db. Execute "DELETE * FROM Закладки"

End If

'открыть объект Recordset

Set rst = db. OpenRecordset("Закладки", dbOpenDynaset)

With СписокКлиентов

'добавить в таблицу Закладки ВСЕ строки

'из списка СписокКлиентов

For i = 0 To. ListCount - 1

rst. AddNew                  'добавить запись

rst! КодКлиента = .Column(0, i)

rst! Название = .Column(1, i)

rst. Update                   'обновить запись

Next i

rst. Close

End With

MsgBox "Список клиентов успешно сохранен", _

vbInformation, "Администратор!"

End If

Else

MsgBox "Отсутствуют клиенты в списке закладок", _

vbExclamation, "Администратор!"

End If

Set db = Nothing

End Sub

'------------------------------------------------------------------------

Private Sub cmdView_Click()

DoCmd. OpenForm "Клиенты", , , "КодКлиента=" & "'" _

& Закладки_1!КодКлиента & "'"

Forms! Клиенты. NavigationButtons = False

End Sub

Добавить комментарий


Защитный код
Обновить

По темам:

История Украины

Культурология

Высшая математика

Информатика

Охотоведение

Статистика

География

Военная наука

Английский язык

Генетика

Разное

Технологиеские темы

Украинский язык

Филология

Философия

Химия

Экология

Социология

Физическое воспитание

Растениевосдство

Педагогика

История

Психология

Религиоведение

Плодоводство

Экономические темы

Бухгалтерские темы

Маркетинг

Иностранные языки

Ветеринарная медицина

Технические темы

Землеустройство

Медицинские темы

Творчество

Лесное и парковое хозяйство

Агрономия

Преподавателям

Юридические темы

Google