Примеры использования методов DAO

 

Sub Find()
'--------------------------------------------------------
' Поиск записей в таблице "tblPeoples"
' Будем искать записи, у которых в поле LastName
' находиться значение "Иванова"
' и печатать в окне отладки ID_People найденных записей
' и их количество
' Проход по всей таблице.
' ЭТОТ МЕТОД НЕ ЯВЛЯЕТСЯ ОПТИМАЛЬНЫМ!!!
'--------------------------------------------------------
Dim db As Database
Dim rs As Recordset
Dim str As String
Dim lngRecordCount As Long
'Счетчик найденных записей

Set db = CurrentDb
Set rs = db.OpenRecordset("tblPeoples", dbOpenDynaset)
str = ""
lngRecordCount = 0
If rs.RecordCount <> 0 Then
rs.MoveFirst
Do Until rs.EOF
'Если текущая запись удовлетворяет условию...
If rs![LastName] = "Иванова" Then
'Инкримируем счетчик найденных записей
lngRecordCount = lngRecordCount + 1
str = str & rs![ID_People] & ", "
End If
rs.MoveNext
Loop
str = str & vbCrLf & "Всего найдено записей: " & _
lngRecordCount
Else
str = "Таблица ""tblPeoples"" не содержит записей."
End If
Debug.Print str
rs.Close
db.Close
End Sub

 

 

Option Compare Database
Option Explicit


Sub Cycle01_1()
'--------------------------------------------------------
' Цикл по записям таблицы "tblPeoples" от начала до конца
'--------------------------------------------------------
'База данных
Dim db As Database
'Набор записей
Dim rs As Recordset
'Строка
Dim str As String
'Количество записей в наборе записей
Dim lngRecordCount As Long
' db - текушая база данных
Set db = CurrentDb

Set rs = db.OpenRecordset("tblPeoples", dbOpenDynaset)
' rs - набор записей на основе таблицы "tblPeoples"
' При инициализации набора записей мы можем точно
' определить, есть ли в этом наборе записи или нет.
' Свойство "RecordCount" набора записей посли его
' инициализации, по идее, должна сождержать количество
' записей набора, однако это не так. Если в наборе есть
' записи это свойство отлично от нуля, но не содержит
' их количество. Для определения количества записей
' необходимо перейти на последнюю запись набора, и после
' этого в свойстве "RecordCount" будет находиться
' количество записей набора.

'Если в наборе rs есть записи...
If rs.RecordCount <> 0 Then
rs.MoveLast
' Переходим на последнюю запись (чтобы "RecordCount"
' содержало верное значение)

lngRecordCount = rs.RecordCount
' Считываем количество записей в переменную

rs.MoveFirst 'Переходим на первую запись набора
' Заполняем текстовую переменную str количеством записей
str = "Количество записей в таблице ""tblPeoples"": " & lngRecordCount & vbCrLf

'Свойство EOF (End Of File) набора записей становиться истинным ПОСЛЕ последней 'записи набора,точно как и свойство BOF (Begin Of File) становиться истинным ПЕРЕД 'первой записью набора.
'Цикл "Пока не кончатся записи в наборе rs"
Do Until rs.EOF
'Добавляем в переменную str имнена полей, их
' значения и символ перевода строки
str = str & "ID_People: " & rs![ID_People] & vbCrLf
str = str & "ID_RecordStatus: " & rs![ID_RecordStatus] & vbCrLf
str = str & "LastName: " & rs![LastName] & vbCrLf
str = str & "FirstName: " & rs![FirstName] & vbCrLf
str = str & "MiddleName: " & rs![MiddleName] & vbCrLf
str = str & "PeopleSex: " & rs![PeopleSex] & vbCrLf
str = str & "BirthDate: " & rs![BirthDate] & vbCrLf
str = str & "------------" & vbCrLf
rs.MoveNext
'Переходим на следующую запись
Loop
'Конец цикла
Else
'Если записей нет...
' Заполняем текстовую переменную str сообщением об
' отсутствии записей
str = "Таблица ""tblPeoples"" не содержит записей."
End If
'Печатаем содержимое переменной str в окне отладки
Debug.Print str
rs.Close
'Закрываем переменную набора записей
db.Close
'Закрываем переменную базы данных
End Sub


Программирование в формах.

Определяя имя для поля, элемента управления или объекта, полезно проверить, не совпадает ли это имя с именем свойства или другого элемента, используемого Microsoft Access; в противном случае иногда могут возникать неверные результаты. Например, при ссылке на значение поля «Name» в таблице «NameInfo» с использованием конструкции NameInfo.Name будет возвращаться значение свойства таблицы Имя (Name), а не значение поля «Name».

Простейшим способом обойти неопределенность в именах является использование оператора ! вместо оператора . (точка) в ссылках на значения полей, элементов управления и объектов:

[NameInfo]![Name]

 

Пример запроса, созданного как текстовая строка плюс значения текстовых переменных. Запрос выбирает из таблицы «_v2» в таблицу «_v4» те записи, значение поля nn в которых больше нуля и меньше значения переменной целого типа var_numb.

Dim S As String

S = "SELECT * INTO [_v2] FROM [_v4] WHERE (([_v4].nn<=" + Str(var_numb) + _

")and([_v4].nn>0))"

DoCmd.RunSQL S

 

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

Forms![Моя форма].Refresh

 

Работа с элементом «поле со списком» (Элемент управления на странице доступа к данным, щелчок по кнопке-стрелке которого приводит к раскрытию списка, в котором можно выбрать значение или ввести его прямо в поле с клавиатуры).

 

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

 

Установка исходных данных для поля (текст в строке свойств «источник строк»):

SELECT countries.country, countries.name_rus, countries.currency_rus FROM countries;

При этом из трёх столбцов видимым является только второй.

 

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

Private Sub Form_Open(Cancel As Integer)

var_country.SetFocus

var_country.SelText = "Россия"

End Sub

 

Реакция на событие «После обновления»:

Private Sub var_country_AfterUpdate()

info_1.Caption = var_country.Column(1)

Forms![Основная форма].Refresh

End Sub

 

Работа с элементом «Диаграмма»

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

 

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

 








Дата добавления: 2015-07-30; просмотров: 733;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.013 сек.