- •Институт информационных систем управления
- •Кандидат экономических наук, доцент в.А. Машурцев
- •Введение.
- •Глава 1. Vb 6.0 – среда разработки приложений.
- •1.1. Окна среды vb.
- •1.2. Файловая структура проекта.
- •1.3. Визуальное конструирование приложения.
- •1.4. Основные свойства формы и задание их значений.
- •1.5. Добавление форм к проекту и удаление форм из проекта.
- •1.6. Основные элементы управления и их свойства.
- •1.6.1. Элемент Label.
- •1.6.2. Элемент TextBox. Элемент TextBox (текстовое окно) предназначен для ввода исходной
- •1.6.3. Элементы HscrollBar и VscrollBar.
- •1.6.4. Элемент CommandButton.
- •1.7. События и методы.
- •1.8. Включение изображений в интерфейс пользователя.
- •1.8.1. Элемент Image. Элемент управления Image предназначен в основном для нанесе-
- •1.8.2. Элемент PictureBox.
- •1.9. Сохранение проекта.
- •Глава 2. Данные vb.
- •2.1. Типы данных.
- •2.1.1. Типы числовых данных.
- •2.1.1.1. Целочисленные данные.
- •2.1.1.2. Вещественные данные.
- •2.1.2. Типы нечисловых данных.
- •2.2. Объявление переменных и констант.
- •2.3. Область видимости переменных и констант.
- •2.4. Совместимость и преобразование типов данных.
- •2.5. Ввод исходных данных и вывод результатов обработки.
- •2.5.1. Окно сообщений. Оператор и функция MsgBox.
- •2.6. Форматирование вывода чисел.
- •Глава 3. Алгоритмизация вычислительных процессов.
- •3.1. Алгоритм и его свойства.
- •3.2. Типы вычислительных процессов.
- •3.3. Операторы vb.
- •3.4. Логические выражения.
- •3.5. Управляющие конструкции.
- •3.5.1. Операторы ветвлений.
- •3.5.1.1. Условный оператор.
- •3.5.1.2. Оператор выбора.
- •3.5.2. Операторы циклов.
- •3.5.2.1. Регулярный цикл.
- •3.5.2.2. Итерационные циклы.
- •3.5.2.3. Цикл перечислимого типа.
- •3.5.3. Элементы выбора.
- •3.5.3.1. Элемент CheckBox.
- •3.5.3.2. Элемент OptionButton.
- •3.5.4. Элемент управления и функция Timer.
- •3.5.5. Дата и время.
- •3.5.6. Оператор DoEvents.
- •3.5.7. Объединение кнопок в группы.
- •3.5.7.1. Элемент Frame.
- •3.6. Списки.
- •3.6.1. Элемент ListBox.
- •3.6.2. Элемент ComboBox.
- •Глава 4. Массивы.
- •4.1. Одномерные массивы.
- •4.2. Двумерные массивы.
- •4.3. Статические и динамические массивы.
- •4.4. Функция Array.
- •4.5. Генератор случайных чисел.
- •4.6. Функции lBound и uBound.
- •4.7. Массивы элементов управления.
- •4.8. Сопоставление массивов и списков.
- •4.9. Элемент msFlexGrid.
- •4.10. Упорядочение строк элемента msFlexGrid.
- •Глава 5. Процедуры и функции полоьзователя.
- •5.1. Создание стандартного модуля в приложении.
- •5.2.2. Вызов процедуры на выполнение.
- •5.3. Функции пользователя.
- •Глава 6. Обработка текстовой информации.
- •6.1. Изменение регистра символов в тексте.
- •6.2. Поиск заданной подстроки в тексте.
- •6.3. Выборка части текста.
- •6.4. Замена символов в тексте.
- •6.5. Удаление лишних пробелов из строки текста.
- •6.6. Инвертирование строк.
- •6.7. Преобразование текстовых строк в числа и наоборот.
- •6.8. Определение длины текста.
- •Глава 7. Создание меню пользователя.
- •Глава 8. Пользовательский тип данных.
- •8.1. Записи.
- •8.2. Сложные структуры данных.
- •Глава 9. Файлы.
- •9.1. Файлы последовательного доступа.
- •9.1.1. Открытие файла последовательного доступа.
- •9.1.2. Запись информации в файл.
- •9.1.3. Чтение информации из файла.
- •9.1.4. Закрытие файла.
- •9.2. Файлы произвольного доступа.
- •9.2.1. Открытие файла произвольного доступа.
- •9.2.2. Запись информации в файл.
- •9.4. Операции с файлами в vb.
- •9.5. Файловые операторы и функции обработки данных.
- •9.6. Сравнительный пример работы с файлами.
- •Глава 10. Обработка бд Access в среде vb.
- •10.1. Создание бд Access в среде vb.
- •10.2. Использование технологии Data Access Objects (dao).
- •10.2.1. Элемент управления Data.
- •10.2.2. Свойство Recordset элемента Data.
- •10.2.3. Программное связывание элементов.
- •10.3. Технология ActiveX Data Objects (ado).
- •10.3.1. Подключение ado Data к источнику данных (бд).
- •10.3.2. Подключение ado Data к источнику записей.
- •10.3.3. Элемент управления DataGrid.
- •10.4. Объекты ado.
- •10.4.1. Объект Connection.
- •10.4.2. Объект RecordSet.
- •10.4.3. Перемещение по набору записей.
- •10.4.4. Обращение к отдельным полям записи.
- •10.4.5. Выполнение запросов к бд.
- •10.5. Пример обработки бд в рамках технологии ado.
- •Глава 11. Обмен данными между приложениями.
- •11.1. Экспорт данных из бд в текстовый файл.
- •11.2. Технология внедрения и связывания (ole).
- •11.3. Связывание и внедрение на этапе design.
- •11.3.1. Связывание на этапе проектирования. Сразу же после размещения на форме элемента ole появляется
- •11.3.2. Внедрение на этапе проектирования.
- •11.4. Связывание и внедрение объектов на этапе run.
- •11.4.1. Свойства ole-контейнера.
- •11.4.2. Методы ole-контейнера.
- •11.4.3. События, связанные с ole-контейнером.
- •11.4.5. Внедрение объекта на этапе run. Для внедрения объектов в vb-приложение используется метод CreateEmbed. Синтаксис оператора, использующего этот метод:
- •Глава 12. Графические средства vb 6.
- •12.1. Управление цветом.
- •12.2. Изображения в интерфейсе проекта.
- •12.2.1. Наложение изображения на этапе проектирования. Наложение изображения на форму.
- •Восстановление утраченных графических файлов.
- •Наложение изображения на элемент PictureBox.
- •Наложение изображения на элемент CommandButton.
- •12.2.2. Наложение изображений на этапе выполнения.
- •12.3. Использование анимированных изображений.
- •12.3.1. Визуализация анимированных gif-файлов.
- •12.3.2. Визуализация на форме клипов.
- •12.4. Рисунки на графических объектах.
- •12.4.1. Элемент Shape.
- •12.4.2. Элемент Line.
- •12.5. Графические методы.
- •12.5.1. Методы для работы с изображением точки.
- •12.5.2. Метод Line.
- •12.5.3. Метод Circle.
- •12.6. Использование графики для решения отдельных задач.
- •12.6.1. Визуализация процесса сортировки элементов массива.
- •12.6.2. Принадлежность точки заданной области.
- •Приложение 1. Типовые алгоритмы обработки чисел.
- •Приложение 3. Алгоритмы обработки массивов.
- •Приложение 4. Примеры создания процедур и функций.
- •Приложение 5. Пример обработки типизированных файлов.
- •Приложение 6. Пример обработки бд Access в среде vb.
- •Оглавление
- •Глава 1. Vb 6.0 – среда разработки приложений. 4
- •Глава 2. Данные vb. 20
- •Глава 3. Алгоритмизация вычислительных процессов. 33
- •Глава 4. Массивы. 61
- •Глава 5. Процедуры и функции полоьзователя. 77
- •Глава 10. Обработка бд Access в среде vb. 110
- •Глава 11. Обмен данными между приложениями. 139
- •Глава 12. Графические средства vb 6. 150
10.4.3. Перемещение по набору записей.
Для перемещения по набору данных используются методы объекта RecordSet:
- MoveFirst – перемещает курсор на первую запись в наборе
данных;
- MoveNext – перемещает курсор на следующую запись в наборе
данных;
- MovePrevious – перемещает курсор на предыдущую запись;
- MoveLast – перемещает курсор на последнюю запись в наборе;
- Move n – перемещает курсор на n записей вперед или назад в зависимости от знака n.
Если при перемещении по записям курсор разместится перед первой записью, то значение свойства BOF объекта RecordSet становится равным True. Точно так же, если курсор оказался после последней записи, то становится равным True значение свойства EOF. В обоих случаях для продолжения работы курсор необходимо вернуть в набор записей. Значит, необходимы проверки положения курсора. Проверки положения курсора и при необходимости его возврат в набор записей выполняются следующим кодом:
If rs.BOF Then rs.MoveFirst
и, аналогично:
If rs.EOF Then rs.MoveLast
Если типом набора записей является Dinaset или SnapShot, то появляется возможность перемещаться на запись с произвольным номером. Для этого нужно воспользоваться свойством AbsolutePosition объекта RecordSet:
rs.AbsolutePosition = k,
где k – номер заданной записи в наборе. Нумерация записей в наборе RecordSet начинается с 0, т.е. первая запись имеет номер 0.
Для набора типа Table такой возможности нет, так как в нем допустимо перемещение только в прямом направлении.
10.4.4. Обращение к отдельным полям записи.
Само по себе перемещение по записям не позволяет оперировать
с информацией, содержащейся в записях. Для этого нужно иметь возможность обращаться к конкретным полям записей, считывать или изменять их значения.
Обратиться к некоторому полю записи можно по его имени или по его индексу. Поля индексируются от нуля до величины на единицу меньшей общего числа полей в наборе записей. Например, чтобы присвоить полю по имени nazv новое значение, которое содержится в переменной st, можно записать либо:
rs.Fields(nazv).Value = st,
либо, если индекс этого поля равен i, то:
rs.Fields(i).Value = st.
Оба способа равноправны. Свойство Value можно не указывать, так как оно подразумевается по умолчанию.
Общее количество полей в записи возвращает свойства Count. Например:
n = rs.Fields.Count
Общее количество записей в наборе можно определить с помощью следующего кода:
nRec = 0
Do While Not rs.EOF
rs.MoveNext
nRec = nRec + 1
Loop
Записи, так же, как и поля записи, в VB нумеруются с нуля. Поэтому, чтобы организовать цикл по всем полям записи, нужно записать:
For i = 0 To rs.Fields.Count - 1
. . . . . . . . . . . .
Next i
Чтение значений полей записи в некоторую переменную осуществляется аналогично записи нового значения поля:
st = rs.Fields(nazv)
или
st = rs.Fields(i).
Для добавления новой записи в RecordSet нужно вызвать метод AddNew, присвоить полям записи значения и вызвать метод Update. Например:
rs.AddNew
rs.Fields(nazv) = “Astra”
rs.Fields(prod) = “Laser SQ”
rs.Fields(num) = n
rs.Update
Выполнение метода Update приводит к тому, что сделанные изменения в RecordSet вызовут соответствующие изменения и в самой БД.
В технологии ADO отсутствует метод Edit, так как здесь изменение значения какого-либо поля автоматически включает режим редактирования.
Для удаления текущей записи из RecordSet используется метод Delete. Например, если мы хотим удалить запись с заданным номером из RecordSet, то нужно записать:
n = InputBox(“Введите номер удаляемой записи”)
rs.Move n – 1
rs.Delete
rs.Update
Теперь мы можем производить чисто программными средствами без использования элемента ADO Data любую обработку информации в нашей БД. Остается рассмотреть вопрос о визуализации содержимого объекта RecordSet. Вывести содержимое объекта RecordSet на экран монитора можно, например, с помощью уже известного нам элемента управления MSFlexGrid.
Чтобы ячейке (k, m) элемента MSFlexGrid присвоить значение i–го поля j–той записи из RecordSet, достаточно выполнить:
rs.Move j – 1
MSFlexGrid1.TextMatrix(k, m) = rs.Fields(i)
И, наоборот, чтобы записать в RecordSet значение i–го поля j–той записи, содержащейся в ячейке (k, m) элемента MSFlexGrid, нужно выполнить:
rs.Move j – 1
rs.Fields(i) = MSFlexGrid1.TextMatrix(k, m)
После завершения обработки информации в БД необходимо разорвать соединение объектов ADO с БД и освободить занимаемую ими память. Это осуществляет следующая группа операторов:
rs.Close
Set rs.Nothing
cn.Close
Set cn.Nothing