КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Покажчик поточного записуДля виділення поточного запису в таблиці служить покажчик поточного запису. Для переходу до іншого запису набору даних використовуються методи MoveFirst, MoveLast, MovePrevious та MoveNext. Метод MoveFirst призначений для переміщення покажчика на перший запис таблиці. MoveLast переміщає покажчик на останній запис таблиці. MovePrevious переміщає покажчик на попередній запис. MoveNext переміщає покажчик на наступний запис. Ці методи відповідають кнопкам на елементі управления Data. Data1.Recordset.MoveFirst Data1.Recordset.MoveLast Data1.Recordset.MoveNext Data1.Recordset.MovePrevious Застосування перших двох методів не викликає труднощів. Проблеми виникають при використанні методів MovePrevious і MoveNext, коли покажчик знаходиться на першій або на останньому записі. В цьому випадку Visual Basic генерує помилку виконання.
Властивості BOF і EOF Проте Visual Basic надає можливість уникнути цієї помилки. Набір записів Recordset має дві властивості BOF і EOF, які доступні тільки під час виконання. Властивість BOF приймає значення True, якщо покажчик текучого запису розташований перед першим записом набору записів, і значення False, якщо покажчик поточного запису розташований на першому записі набору або на будь-якому записі після нього. Властивість EOF має значення True, якщо покажчик поточного запису розташований після останнього запису набору, і значення False, якщо покажчик поточного запису розташований на останньому записі набору або на будь-якому записі перед ним. Властивість RecordCount За допомогою властивості RecordCount можна визначити кількість записів в наборах даних Recordset або Dynaset. Щоб отримати правильний результат, перед зверненням до властивості RecordCount слідує за допомогою методу MoveLast встановити покажчик на останній запис набору даних. Інакше значення RecordCount не буде рівне фактичній кількості записів. Властивість AbsolutePosition Властивість AbsolutePosition показує номер текучого запису в наборі даних і залежить від заданого критерію сортування. Встановивши значення цієї властивості, можна перевести покажчик на потрібний запис набору даних. Властивість AbsolutePosition є тільки у наборів записів типу Dynaset і Snapshot. Якщо поточний запис не визначений або записів в наборах даних немає, властивість має значення -1. Дана властивість не призначена для позиціонування покажчика запису. Для фіксації поточної позиції в наборі і для повернення в цю позицію рекомендується використовувати закладки.
Властивість Bookmark Значення властивості Bookmark є набором символів, однозначно вказуючих на певний запис. В програмі Visual Basic є можливість зберегти закладку поточного запису, для чого слід привласнити змінній типу String і Variant значення властивості Bookmark. Щоб повернутися на цей запис після переходів по записах форми, слід привласнити властивості Bookmark значення закладки, збереженої в змінній. Dim BM As Variant ВМ = Datal.Recordset.Bookmark Datal.Recordset.MoveNext "... інші переміщення по записах Datal.Recordset.Bookmark = BM Перехід до необхідного запису за допомогою закладок — це найшвидший спосіб. Щоб проглянути всі закладки, треба просто вивести всі властивості Bookmark набору записів. Do Debug.Print Data1.Recordset.Bookmark Datal.Recordset.MoveNext Loop Until Datal.Recordset.EOF Кількість створюваних закладок не обмежена. Закладки однозначно визначають кожний запис в наборі записів, тому ці закладки є непридатними до іншого набору записів, навіть якщо обидва набори записів створюються на основі однієї таблиці запиту або оператора SQL.
Пошук записів Пошук записів також є важливою функцією програм баз даних. Існує два принципово різних підходу до рішення задачі пошуку. Перший з них припускає використовування Find методів: FindFirst — для пошуку першого запису, який відповідає заданому критерію. FindLast — для пошуку останнього запису, який відповідає заданому критерію. FindPrevious — для пошуку попереднього запису, який відповідає заданому критерію. FindNext — для пошуку наступного запису, який відповідає заданому критерію. Якщо текст знайдений, то методи повертають значення True; в іншому випадку повертається значення False. Ці методи дозволяють проглядати таблиці і використовуються аналогічно методам Move. Recordset.FindFirst criteria Критерій пошуку Datal.Recordset.FindFirst "[Surname] = 'Майер' 'Шукає" всіх Майеров Подвійні лапки повинні бути зовнішніми.
Властивість NoMatch Властивість NoMatch показує, чи був знайдений потрібний запис в результаті виклику одного з методів групи Find. Значення властивості рівно True, якщо пошук завершився невдало, і False, якщо цей запис знайдений. Data1.Recordset.FindFirst "[Surname] = 'Майер'" If Data1.NoMatch Then MsgBox "У нас немає ніякого Майера!" Else MsgBox "У нас є Майер!" End If При використовуванні методів FindNext і FindPrevious слід враховувати, що процедура пошуку починається з поточного запису. При цьому не передбачені ніякі цикли, тобто FindNext закінчує пошук на останньому записі набору даних, а FindPrevious — на першому.
Дата добавления: 2014-01-05; Просмотров: 334; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |