- •Министерство образования россИйСкой федерации
- •Введение 10 Глава 1. Основные термины, понятия и определения информатики 13
- •Глава 2. Операторы 36
- •Глава 3. Основные вcтроенные функции 62
- •Глава 4. Среда разработки Visual Basic 69
- •Глава 5. Основные общие свойства, события и методы 73
- •Глава 6. Объекты, управляющие элементы 79
- •Глава 7. Модули и классы 102
- •Глава 8. Разработка интерфейса 107
- •Глава 9. Работа с базами данных 118
- •Глава 10. Графические средства 174
- •Глава 16. Лабораторный практикум 258
- •Предметный указатель 290 Библиографический список 295
- •Введение
- •Порядок изучения и классификация учебного материала
- •Глава 1. Основные термины, понятия и определения информатики
- •1.1. Алгоритмы
- •1. Словесная форма
- •2. Блок ‑ схема
- •3. Псевдокоды
- •1.2. Языки программирования
- •1. Естественный язык.
- •1.3. Визуальное объектно‑ориентированное программирование
- •1.4. Этапы проектирования программной системы
- •1.5. Общий порядок подготовки программ к выполнению
- •1.6. Типы программ
- •1.7. Информация, данные и их характеристики
- •1.8. Системы счисления
- •1.9. Организация файлов
- •1.10. Структурное программирование
- •1.11. Организация человеко‑машинного интерфейса
- •1.12. Информационные технологии
- •1.13. Защита информации
- •1.14. История возникновения и развития языка Basic
- •Глава 2. Операторы
- •2.1. Объявление данных
- •Типы данных
- •2.1.1. Определение типа пользователя ‑ Type
- •2.1.2. Объявление записи
- •2.1.3. Объявление массива
- •2.1.4. Объявление локальных статических переменных ‑ Static
- •2.1.5. Объявление именованных констант ‑ Const
- •2.1.6. Встроенные именованные константы
- •2.1.7. Перечисленияenum(vb)
- •2.1.8. Коллекции данныхCollection(vb)
- •Вопросы для самопроверки и контроля
- •2.2. Переопределение массивов
- •2.2.1. Инициализация массива ‑ Erase
- •2.2.2. Переопределение массивов ‑ Redim
- •2.2.3. Изменение начала отсчета индексов ‑ Option Base
- •Вопросы для самопроверки и контроля
- •2.3. Работа с внутренними подпрограммами
- •2.3.1. Переход к внутренней подпрограмме ‑ Gosub
- •2.3.2. Возврат из внутренней подпрограммы ‑ Return
- •2.4.2. Безусловный переход ‑ Goto
- •2.4.3. Условный переход ‑ If, Iif
- •Однострочный вид оператора:
- •Пример. Нахождение наибольшего числа из двух чисел a, b.
- •2.4.4. Выбор варианта ‑ Select
- •2.4.5. Цикл ‑ For ... Next
- •2.4.6. Цикл ‑ For Each ... Next(Vb)
- •2.4.7. Цикл ‑ Do... Loop
- •2.4.9. Обмен значениями двух переменных- Swap (qb)
- •Вопросы для самопроверки и контроля
- •2.5. Ввод-вывод
- •2.5.1. Ввод данных с клавиатуры ‑ Input (qb)
- •2.5.2. Ввод строки символов ‑ Line Input (qb)
- •2.5.3. Вывод данных с символами‑разделителями на дисплей ‑ Write (qb)
- •2.5.4. Вывод данных на дисплей ‑ Print
- •2.5.5. Вывод данных на дисплей в заданном формате ‑ Print Using (qb)
- •2.5.6. Вывод данных на принтер ‑ Lprint (qb)
- •2.5.7. Задание числа колонок и строк на экране ‑ Width (qb)
- •2.5.8. Управление курсором- Locate (qb)
- •2.5.9. Чтение из оперативной памяти-Data, Read, Restore (qb)
- •Вопросы для самопроверки и контроля
- •2.6. Работа с файлами
- •2.6.1. Открытие файла или устройства ‑ Open
- •2.6.2. Вывод данных с символами-разделителями в файл ‑ Write #
- •2.6.3. Вывод данных в файл ‑ print #
- •2.6.4. Ввод данных из текстового файла ‑ Input #
- •2.6.5. Ввод строки символов из файла ‑ Line Input#
- •2.6.10. Захват и освобождение файла ‑ Lock, Unlock
- •2.7.2. Задание палитры ‑ Palette (qb)
- •2.7.3. Задание цвета ‑ Color (qb)
- •2.8.3. Изображение окружности и эллипса ‑ Circle (qb)
- •2.8.4. Вычерчивание произвольного изображения ‑ Draw (qb)
- •2.8.5. Окраска изображения ‑ Paint (qb)
- •2.8.6. Запись фрагмента экрана в массив ‑ Get(qb)
- •2.8.7. Восстановление изображения на экране ‑ Put (qb)
- •2.8.8. Копирование страниц экрана ‑ Pcopy (qb)
- •2.10. Вызов внешних процедур и функций
- •2.10.1. Объявление процедур ‑ Declare
- •2.10.2. Задание процедуры ‑ Sub
- •2.10.3. Задание функции ‑ Function
- •2.10.4. Вызов процедуры, функции ‑ Call
- •Вопросы для самопроверки и контроля
- •2.12.4. Конец процедуры обработки прерываний ‑ Resume
- •Глава 3. Основные вcтроенные функции
- •3.1. Математика
- •3.2. Массивы
- •3.3. Строки
- •3.4. Даты и время
- •3.5. Преобразование и контроль данных
- •3.6. Ввод и вывод данных
- •3.7. Установка цвета
- •3.11. Поиск, выбор, замена (vb)
- •3.12. Финансово‑математические функции (vb)
- •Глава 4. Среда разработки Visual Basic
- •4.1. Окна и панели среды разработки
- •4.2. Настройка среды разработки
- •Глава 5. Основные общие свойства, события и методы
- •5.1. Cвойства
- •5.2. События
- •5.3. Методы
- •5.4. Размещение объектов
- •5.5. Экран
- •Вопросы для самопроверки и контроля
- •Глава 6. Объекты, управляющие элементы
- •6.1. Формы
- •6.2. Командные кнопки (CommandButton)
- •6.3. Текстовые поля (TextBox, MaskedEdit, RichTextBox)
- •6.4. Надписи (Label)
- •6.5. Рамки (Frame)
- •6.6. Зависимые переключатели (OptionButton)
- •6.7. Независимые переключатели (CheckBox)
- •6.8. Списки (ListBox)
- •6.9. Комбинированные поля (ComboBox)
- •6.10. Рисунки (Image)
- •6.11. Графические поля (PictureBox)
- •6.12. Таймеры (Timer)
- •6.13. Полосы прокрутки (hScrollBar,vScrollBar,FlatScrollBar)
- •6.14. Ползунок (Slider)
- •6.15. Списки устройств (DriveListBox)
- •6.16. Списки каталогов (DirListBox)
- •6.17. Списки файлов (FileListBox)
- •6.18. Кнопки-счетчики (UpDown)
- •6.19. Полоса процесса (Progressbar)
- •6.20. Контур (Shape)
- •6.21. Линия (Line)
- •6.22. Закладки (ssTab, TabStrip)
- •6.23. Таблицы (msFlexGrid)
- •6.24. Список изображений (ImageList)
- •6.25. Отображение иерархических структур (TreeView)
- •6.26. Отображение списков (ListVew)
- •6.27. Анимация avi (Animation)
- •6.28. Календарь (MonthView, Calendar)
- •6.29. Ввод даты и времени (DateTimePicker)
- •Вопросы для самопроверки и контроля
- •Глава 7. Модули и классы
- •7.1. Модули
- •7.2. Классы
- •Вопросы для самопроверки и контроля
- •Глава 8. Разработка интерфейса
- •8.1. Меню
- •8.2. Всплывающее и динамическое меню
- •8.3. Панель инструментов (ToolBar)
- •8.4. Общий диалог
- •8.4.1. Размещение общего диалога (Common Dialog)
- •8.4.2. Диалог открытия файла
- •8.4.3. Диалог настройки шрифтов
- •8.4.4. Диалог настройки цвета
- •8.4.5. Диалог настройки принтера
- •8.5. Встроенные и специальные диалоги
- •8.6. Панель состояния (StatusBar)
- •Вопросы для самопроверки и контроля
- •Глава 9. Работа с базами данных
- •9.1. Создание баз данных в Data Manager Pro
- •9.2. Создание запросов в Data Manager Pro
- •9.3. Создание форм мастером vb Data Form Wizard
- •9.4. ТехнологияDaOдоступа к базам данных
- •9.4.1. Объект управления Data
- •9.4.2. Объекты управления, связанные с базой данных
- •9.4.3. Методы
- •Уплотнение базы данных методом CompactDatabase
- •9.4.4. Создание базы, таблиц, индексов, связей и запросов
- •9.4.5. Обмен данными с помощью репликаций
- •9.5. Команды языка запросов sql
- •9.5.1. Запросы на выборку данных
- •Указание результатов выборки и источников данных
- •Критерий связи и отбора данных
- •Группировка данных
- •Сортировка
- •Примеры
- •9.5.2. Запросы на обновление данных
- •9.5.5. Изменение структуры таблицы
- •9.5.6. Объединение таблиц
- •9.5.7. Перекрестные запросы
- •9.5.8. Подзапросы
- •9.5.9. Создание и использование базы данных средствами запросов иAdo
- •9.6. Формирование отчетов средствами Crystal Reports
- •9.7. Соединение среды разработки с базой данных
- •9.8. Создание конструктора среды данных
- •9.9. ТехнологияAdOдоступа к базам данных
- •9.9.1. Объект управления ado Data (Adodc)
- •9.9.2. Командные средства
- •9.9.3. Хранимые процедуры (запросы)
- •9.9.4. Отключение наборов данных
- •9.9.5. Копирование набора в двумерный массив (GetRows)
- •9.10. Создание запросов с использованием конструктора среды данных
- •9.11. Формирование отчетов средствами DataReport
- •9.12. Применение отчетов, сформированных субдAccess
- •Вопросы для самопроверки и контроля
- •Глава 10. Графические средства
- •10.1. Общая информация
- •10.2. Отображение точки ‑ pSet, Point
- •10.3. Отображение отрезка и прямоугольника ‑ Line
- •10.4. Изображение окружности, дуг и секторов ‑ Circle
- •10.5. Формирование диаграмм (msChart,ChartFx)
- •Вопросы для самопроверки и контроля
- •Глава 11. Работаcмышью
- •11.1. События и методы
- •11.2. Перенос объектов
- •11.3. Изменение размеров объектов
- •11.4. Рисование
- •X As Single, y As Single) ‘процедура обработки нажатия мышки
- •12.2. Имитация нажатий клавиш
- •12.3. Печать
- •Вопросы для самопроверки и контроля
- •Глава 13. Отладка, компиляция и распространение программ
- •13.1. Отладка
- •13.1.1. Устранение синтаксических и логических ошибок
- •13.1.2. Обработка ошибок, возникающих при выполнении программы
- •13.2. Компиляция
- •13.3. Распространение программ
- •Вопросы для самопроверки и контроля
- •Глава 14. Дополнительные возможности
- •14.1. ActiveX ‑ элементы
- •14.2. Динамически присоединяемые библиотеки (dll,ActiveXdll)
- •14.3. Функции Windows api
- •14.4. Создание справочной системы
- •14.5. Технология ole
- •14.6. Обмен данными через буфер Clipboard
- •14.7. Директивы условной компиляции
- •14.8. Прерывание процессов функцией DoEvents
- •14.9. Параметры настройки приложения
- •14.10. Динамическое создание объектов
- •Вопросы для самопроверки и контроля
- •Глава 15. СозданиеWeb‑страниц
- •15.1. Основные средства созданияWeb‑страниц
- •15.2. ОсновыHtml
- •15.2.1. Правила написания
- •15.2.2. Структура документа
- •15.2.3. Форматирование текста
- •15.2.4. Атрибуты выравнивания текста и управления цветом
- •15.2.5. Шрифты
- •15.2.6. Списки
- •15.2.7. Изображения
- •15.2.8. Таблицы
- •15.2.9. Якорь (элемент привязки документов, их частей, почты)
- •15.2.10. Фреймы
- •15.2.11. Формы, управляющие элементы
- •15.2.12. Использование компонентовActiveX
- •15.2.13. Дополнительные теги
- •15.2.14. Листы стилей
- •15.3. Клиент и сервер
- •15.4. СозданиеAsp‑файла
- •15.5. Основы создания сценариев
- •15.6. Управление броузером
- •15.6.1. ОбъектWindow
- •15.6.2. ОбъектFrame
- •15.6.3. ОбъектLocation
- •15.6.4. ОбъектNavigator
- •15.6.5. Объект History
- •15.6.6. ОбъектDocument
- •15.6.7. ОбъектLinks
- •15.6.8. Объект Anchors
- •15.6.9. ОбъектForms
- •15.6.10. ОбъектElemеnts
- •15.6.10.1. Кнопки (Button, Reset, Submit)
- •15.6.10.2. Переключатели (CheckBox,Radio)
- •15.6.10.3. Поля ввода (Text, TextArea, Password)
- •15.6.10.4. Списки выбора (Select)
- •15.7. ОбъектыAsp
- •15.8. Работа с текстовыми файлами
- •15.9. Работа с базами данных
- •15.10. Визуальный редакторHtml‑документовDreamweaver
- •15.10.1. Палитра основных объектов
- •15.10.2. Настройка Dreamweaver
- •15.10.3. Структура и размещение файлов
- •15.10.4. Создание заготовкиHtml‑документа
- •15.10.5. Создание пустой таблицы
- •15.10.6. Форматирование ячеек таблицы
- •15.10.7. Размещение картинки
- •15.10.8. Создание меню
- •15.10.9. Форматирование текста
- •15.10.10. Режимы работы объектов
- •15.10.11. Команды
- •15.10.12. Анимация
- •Вопросы для самопроверки и контроля
- •Глава 16. Лабораторный практикум
- •16.1. Числовые типы, оператор присваивания
- •16.2. Алгоритмы линейной структуры
- •16.3. Алгоритмы разветвляющей структуры
- •16.4. Алгоритмы циклической структуры
- •16.5. Алгоритмы работы с рядами
- •16.6. Алгоритмы работы с массивами
- •16.7. Обработка символьных данных
- •16.8. Организация подпрограмм
- •16.9. Работа с файлами
- •16.10. Работа с формами в Visual Basic
- •16.11. Совместная работа с файлами, базами и отчетами
- •Пример задачи для Quick Basic
- •Текст программ
- •1. Учет авиапассажиров.
- •16. Учет платежных поручений в банке.
- •2.2. Переопределение массивов
- •2.3. Работа с внутренними подпрограммами
- •2.4. Организация вычислений
- •2.5. Ввод-вывод
- •2.6. Работа с файлами
- •2.10. Вызов внешних процедур и функций
- •5. Основные общие свойства, события и методы
- •6. Объекты, управляющие элементы
- •7. Модули
- •8. Разработка интерфейса
- •9. Работа с базами данных
- •10. Графические средства
- •11. Работа с мышью
- •12. Печать
- •13. Отладка, компиляция и распространение программ
- •14. Дополнительные возможности
- •15. Создание Web‑страниц средствами vbScript, html, asp
- •Приложение 2. Вопросы для экзаменационных билетов
- •Предметный указатель
- •Библиографический список
- •Плещёв Владимир Васильевич Информатика и программирование.
- •С примерами и упражнениями
9.4.3. Методы
При работе с базой данных используются командные кнопки, которые выполняют определенные процедуры. При программировании этих процедур используются различные методы. Рассмотрим основные из них.
Непосредственный доступ к базам осуществляется через объекты доступа к данным (Data Access Objects ‑ DAO), которые хранятся в библиотеке DAO350.DLL. Чтобы воспользоваться DAO, необходимо выполнить команду Project/Referencesи выбрать далее строкуMicrosoft DAO 3.51 Object Library.
Структура вложенности коллекций объектов DAO
DBEngine ‑ объект самого верхнего уровня в модели DAO.
Errors (Error) ‑ описание ошибок доступа к базе.
Properties (Property) ‑свойства объектов вышестоящего уровня.
Workspaces (Workspace) -определяет именованный сеанс работы пользователя, содержит открытые базы данных и предоставляет механизмы для одновременного выполнения транзакций, поддерживает работу защищенной рабочей группы.
Databases (Database) - представляет открытую базу данных.
Connections (Connection) - подключение к базе данных ODBC.
Groups (Group) - представляет группу учетных записей пользователей, которые имеют общие разрешения при открытии объекта Workspace для защищенной рабочей группы.
Users (User) - содержит все сохраненные объекты User объекта Workspace или Group.
Properties(Property) ‑ свойства объектов вышестоящего уровня.
Структура объекта Database
Database ‑ представляет собой открытую базу данных. При открытии существующего объекта Database или при создании нового объекта в объекте Workspace база данных автоматически добавляется в семейство Databases. Объект Database, закрытый с помощью метода Close, удаляется из семейства Databases, но не удаляется с диска. Перед закрытием объекта Database необходимо закрыть все открытые объекты Recordset. При ссылках на объект Database используют его порядковый номер в семействе или значение свойства Name (имя) в одной из следующих синтаксических конструкций: Databases(0), Databases(“имя>”), Databases![<имя>].
Можно открыть базу данных несколько раз, создавая повторяющиеся имена в семействе Databases. После этого следует присвоить объекты Database объектным переменным и ссылаться на объекты по именам переменных.
Recordsets (Recordset) ‑представляет собой открытую таблицу базы.
Fields (Field) - представляет собой поле открытой таблицы.
Properties(Property) ‑ свойства объектов вышестоящего уровня.
TableDefs (TableDef) -содержит все объекты TableDef базы данных. Работа с определением таблицы проводится с помощью объекта TableDef и его методов и свойств. При ссылках на объект TableDef используют его порядковый номер в семействе или значение свойства Name (<имя>):
TableDefs(0) или TableDefs(“<имя>”) или TableDefs![<имя>]
Indexes (Indexes) - содержит индексы. При доступе к объектам Recordset типа таблицы порядок записей определяется свойством Index объекта. В значении этого свойства следует указывать значение свойства Name существующего объекта Index из семейства Indexes объекта TableDef, представляющего собой базовую таблицу объекта Recordset. Применение методов Append или Delete к семейству Indexes возможно только при значении True свойства Updatable вмещающего объекта TableDef. Созданный новый объект Index должен быть добавлен в семейство Indexes объекта TableDef с помощью метода Append.
Fields (Field), Properties (Property)
Relations (Relation) -используют для создания новых связей и просмотра существующих в базе данных. Чтобы добавить объект Relation в семейство Relations, следует сначала создать этот объект с помощью метода CreateRelation, а затем добавить его в семейство Relations с помощью метода Append. Для удаления объекта Relation из семейства следует вызвать метод Delete. При ссылках на объект Relation используют его порядковый номер в семействе или значение свойства Name (<имя>):
Relations(0), Relations(“<имя>”), Relations![<имя>].
Fields (Field), Properties (Property)
Indexes (Index) ‑ содержит индексы.
Fields (Field),Properties (Property)
QueryDefs (QueryDef) - содержит запросы. Для создания нового объекта QueryDef следует использовать метод CreateQueryDef. Если задать пустую строку в аргументе имя или в свойстве Name, то будет создан не постоянный, а временный объект QueryDef. При ссылках на объект используют его порядковый номер в семействе или значение свойства Name (<имя>):
QueryDefs(0), QueryDefs(”<имя>”), QueryDefs![<имя>]
Parameters (Parameter) - содержит параметры QueryDef.
Fields (Field), Properties (Property)
Containers (Container) - содержит контейнеры.
Documents (Document) - содержит сведения об экземплярах встроенных объектов типа, определяемого объектом Container.
Properties (Property) ‑ свойства объектов вышестоящего уровня
Использование Recordset
Свойство Recordsetможно рассматривать как объект, связанный с воображаемой таблицей, к которой подключен объект Data.
Объект создается методом OpenRecordset(<источник>[, <тип>])после открытия базы данных методомOpenDatabase(<база>) или методомCurrentdbдля уже открытой текущей базы данных. Поскольку эти методы являются функциями, то перед их использованием нужно объявить переменные, соответствующие типамDatabaseиRecordset. Источником может быть имя таблицы, запроса или текст команды запроса.
Параметр <тип> метода OpenRecordsetопределяет тип набора: DbOpenTable (табличный), dbOpenDynamic (динамический в рабочей области ODBCDirect), dbOpenDynaset (динамический), dbOpenSnapshort (моментальный снимок), dbOpenForwardOnly (продвижение только вперед).
Для сокращения записи программы можно использовать команду установки области умолчания для объекта:
With <имя объекта> ‘установка начала области умолчания объекта
... ‘команды
End With ‘конец области умолчания
Внутри области умолчания свойства или методы начинаются непосредственно с точки (.MoveNext).
Допускаются следующие виды обращения к значению поля базы:
<имя объекта Recordset>[.Fields]({“<имя поля>”|<номер поля >})[.Value]
<имя объекта Recordset>!<имя поля записи>
<имя объекта Recordset>![<имя поля записи>]‘ в имени есть пробелы
Пример. rs.Fields(“Fam”)=”Иванов” или rs!Fam=”Иванов”.
Свойство RecordCountсодержит число записей в наборе.
Примерcоздания объектов Data и Recordset с именами Db, Rs,Rb
Dim Db as Database, Rs as DAO.Recordset, Rb as DAO.Recordset
Set Db=OpenDatabase(App.Path+“\Стройки.mdb”) ‘открытие базы строек
Set Rs=db.OpenRecordset(“select * From [Zakazhiki] Order By [Nz]”) ‘запрос
Set Rb=db.OpenRecordset(“Goroda”) ‘открытие справочника городов
Debug.Print Rs.Fields(“Kg”),Rs!Ng ‘вывод кода и наименования города
Print “Число заказчиков ”,Rs.RecordCount ‘вывод числа строек
После создания объекта Recordset можно получить доступ к данным.
Перемещение по таблице
Методы MoveNext(следующая запись),MovePrevious(предыдущая запись),MoveLast(последняя запись), MoveFirst(первая запись).
Примеры вывода записей из таблицы и запроса
Dim db As Database ‘объявление переменной базы
Private Sub Form_load ‘заголовок процедуры загрузки формы
Set Db=Opendatabase(App.Path+”\Стройки.mdb ”) ‘открытие базы
End Sub
Private Sub Command1_Click() ‘процедура распечатки справочника
Dim Rs As DAO.Recordset ‘объявление переменной набора Recordset
Set Rs=db.OpenRecordset(“Zakazhiki”) ‘создание Recordset Rs
Do Until rs.EOF ‘заголовок цикла чтения таблицы
Debug.Print rs.Fields(“Kz”)&rs!Nz ‘вывод на экран записи
Rs.MoveNext ‘переход к следующей записи набора
Loop
Rs.Close ‘закрытие набора Rs
End Sub
Private Sub Command2_Click() ‘процедура вывода запроса из базы
Dim rs As DAO.Recordset
Set rs = db.OpenRecordset(“Select * from Стройки “) ‘формирование запроса
Do While Not rs.EOF: Debug.Print rs(“ns“).Value: rs.MoveNext: Loop ‘вывод
rs.Close: db.Close ‘закрытие набора и базы
End Sub
Для добавления записив набор записей используется методAddNew. Метод вызывается в виде, например: data1.Recordset.AddNew. Метод создает пустую запись в оперативной памяти, а не в базе, очищает все поля формы, связанные c базой данных, давая возможность вводить значения для новой записи. При программном режиме следует присвоить полям значения, используя объект Fields, например: rs.Fields(“Nt”)=”Сахар” или rs!Nt=”Сахар”. Если нужно сразу запомнить все изменения в записи, вызывается методUpdate, имеющий синтаксис, аналогичный синтаксису метода AddNew. Если тип набора ‑ моментальный снимок, то обновлять базу данных запрещено.
Для удаления записииспользуется методDelete.
Пример
Private Sub cmdDelete_Click() ‘обработка кнопки “Удалить”
With datPrimaryRS.Recordset ‘установка объекта по умолчанию
.Delete ‘удаление текущей записи
.MoveNext ‘переход к следующей записи
If .EOF Then .MoveLast ‘переход на последнюю запись
End With ‘конец области умолчания
End Sub ‘окончание процедуры
Для корректировки полязаписи выполните ряд действий.
Установите текущей нужную запись.
Выполните метод EditобъектаRecordset.
Присвойте новые значения корректируемым полям, например: rs.Fields(“Nz”)=”АО Уралмаш” или rs!Nz=”АО Уралмаш”.
Сохраните обновленную запись методом UpdateобъектаRecordset.
Для сортировки набораобычно используются индексы или команды SQL с фразой Order By. Индекс может быть создан заранее при создании таблицы или программным способом.
Пример
rs.Recordset.Index=”kz” ‘установка индекса под именем Kz
rs.Recordset.MoveFirst ‘переход на логически первую запись
rs.Recordset=”Select * From [Zakazhiki] order by Kz” ‘запрос-сортировка
Последовательный метод поиска записи Find
FindFirst “<условие поиска>”, FindLast“<условие поиска>”- поиск первой или последней записи, удовлетворяющей условию.
Пример. Rs.FindFirst “[Ng]=’Екатеринбург’”
FindNext, Findprevious‑ переход на следующую или предыдущую запись, удовлетворяющую условию, соответственно.
Результат поиска содержится в свойстве NoMatchобъекта Recordset: False ‑ объект найден, и он становится текущим;
True ‑ объект отсутствует в наборе, и текущая запись не изменяется.
Прямой метод поиска записи Seek
Этот метод более эффективен, так как использует индексы.
Вызов метода имеет вид:
Seek<оператор сравнения (<, <=, >, >=, =)>, <значение>
Перед поиском нужно установить соответствующий индекс, используемый при поиске.
Пример
Private Sub Form_Load() ‘процедура загрузки формы
Private db As DataBase ‘объявление переменной базы данных
Private rs As DAO.RecordSet ‘объявление переменной набора
End Sub
Private Sub cmdSeek_Click() ‘процедура обработки кнопки поиска
Set Rs.Index=”Familij” ‘установка индекса под именем “Familij”
Set Rs.Seek “=”, Fam.Text ‘значение фамилии введено в поле Fam
If rs.NoMatch Then ‘запись отсутствует
MsgBox (“Фамилия “+Fam.Text+”отсутствует!”)
Else
MsgBox(rs!Fam&rs!Gr&rs!Adr&rs!Oklad) ‘вывод полей найденной записи
End If
End Sub
Определение индекса с помощью объекта TableDef
При выполнении операции поиска Seek над объектом Recordset табличного типа нужно знать доступные индексы. Для этого используется свойство Indexes объекта TableDef.
Пример
Private Sub Form_Load() ‘процедура загрузки формы
Private db As DataBase ‘объявление переменной базы данных
Private rs As DAO.Recordset ‘объявление переменной набора
Set db=OpenDatabase(App.Path+“\Строительство.mdb” ) ‘открытие базы строек
End Sub
Private Sub cmdShowInd_Click() ‘обработка кнопки вывода индексов
Dim td As TableDef ‘объявление переменной объекта TableDef
Dim ind As Index ‘объявление переменной объекта Index
Dim f As Field ‘объявление объекта Field
Set td=db.TableDefs(“uhet stroek”) ‘открытия объекта TableDef
For Each ind In td.Indexes ‘цикл просмотра индексов в коллекции Indexes
Debug.print Ind.Indexes ‘вывод на экран имени очередного индекса
For Each f In ind.Fields
Debug.print “ поле “&f.Name ‘вывод на экран имени поля индекса
Next
Next
End Sub
Сохранение положения записи с помощью свойства Bookmark
С помощью свойства Bookmark можно запоминать адреса нужных записей в виде закладок. Для этого:
Перейдите на запись, которую хотите отметить закладкой.
Присвойте свойству Bookmark объекта Recordset уникальную закладку в виде строки.
Когда нужно вернуться к отмеченной записи, установите ее закладку в свойстве Bookmark.
Механизм транзакций
С помощью объекта Workspace устанавливается сеанс работы пользователя с процессором базы данных. Эти объекты создаются в случаях, когда используются транзакции или для безопасности. Транзакция ‑ это процесс перевода состояния базы из одного целостного в другое целостное состояние, что повышает надежность хранения информации в базе. Для создания транзакции необходимо:
Использовать метод BeginTransобъекта Workspace, который запрещает запись данных в базу до полного завершения транзакции (Workspaces(0).BeginTrans).
Если любая операция с базой закончилась аварийно или нужно отменить все операции, то выполните метод RollBackобъекта Workspace(Workspaces(0).RollBack).
Для успешного завершения транзакции выполните метод CommitTrans (Workspaces(0).CommitTrans).
Связь между таблицамисоздается методомCreateRelationобъекта Database:
Set <переменная>=db.CreateRelation ([<имя связи>],[<имя родительской таблицы>],[<имя дочерней таблицы>],[<параметры>])