Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КонспектЛекций.doc
Скачиваний:
71
Добавлен:
14.05.2015
Размер:
1.26 Mб
Скачать

Примеры использования методов 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