
- •Институт информационных систем управления
- •Кандидат экономических наук, доцент в.А. Машурцев
- •Введение.
- •Глава 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.2. Объект RecordSet.
Следующим важным объектом ADO является объект RecordSet. Его не следует путать со свойством Recordset объекта Data, используемого в технологии DAO. Там, если на форме есть объект Data, то его свойство Recordset связывается с объектом RecordSet и получает из него хранящийся в объекте RecordSet набор данных.
Фактически объект RecordSet является промежуточной, вспомогательной таблицей, в которую из одной или разных таблиц (или запросов) БД записываются требующиеся для обработки или просмотра данные. Другими словами, объект RecordSet – это набор данных, определяемый нуждами прикладной программы. После заполнения объекта RecordSet данными становятся доступными такие операции, как редактирование записей, добавление новых записей, удаление ненужных записей, замена текущей записи, перемещение по набору записей, включенных в набор. При использовании элемента Data в рамках технологии DAO объект RecordSet создается автоматически. Сейчас же мы рассматриваем возможность обработки данных без использования элемента Data. В этом случае объект RecordSet нужно создать программными средствами. Для создания нового экземпляра объекта RecordSet нужно сначала объявить объектную переменную:
Public rs As New ADODB.RecordSet
Создается объект RecordSet с помощью его метода Open, имеющего синтаксис:
RecordSet.Open([Source],[ActiveConnection],[CursorType], _
LockType],[Option]).
Параметр Source – это имя таблицы БД, которая должна войти в набор данных. Кроме того, это может быть команда, определяющая, какие записи и из каких таблиц БД нужно поместить в набор.
Параметр ActiveConnection определяет соединение с БД, которое будет использоваться для данного экземпляра объекта RecordSet. Поскольку мы осуществили соединение с БД с помощью метода Open объекта Connection, то значение этого параметра можно задать равным cn:
rs.ActiveConnection = cn
Параметр CursorType определяет тип курсора набора данных. Курсор в наборе данных применяется для указания текущей записи, аналогично файловому указателю. Тип курсора определяет, что можно делать с записями набора. Типы курсора для объекта RecordSet могут быть:
- adOpenStatic – указывает, что набор является статической копией источника данных. Изменения, сделанные другими пользователями сети, не попадают в такой набор. Этот набор остается неизменным;
- adOpenForwardOnly - похож на предыдущий, но в таком наборе нельзя перемещаться по записям назад и к конкретно указанной записи. Допускается перемещение только в прямом направлении. Этот тип курсора задается по умолчанию;
- adOpenDynamic – все действия, произведенные пользователями с записями, остаются в наборе. Обеспечивается свободное перемещение по набору;
- adOpenKeyset – аналогичен предыдущему, но все добавленные другими пользователями данные в наборе не отражаются. Удаления и изменения в записях набора при этом сохраняются.
Параметр LockType определяет тип блокировки набора данных, т.е. возможности работы других пользователей сети с данными набора. С помощью блокировки можно предотвратить одновременное изменение одних и тех же данных разными пользователями. Возможны следующие типы блокировки:
- adLockReadOnly – можно только читать данные из набора. Редактирование, удаление или добавление записей невозможно. Этот тип блокировки устанавливается по умолчанию;
- adLockPessimistic – запись блокируется сразу после ее редактирования;
- adLockOptimistic – запись блокируется только при вызове метода Update;
- adLockBatchOptimistic – запись блокируется при групповом обновлении, а не при обновлении каждой записи.
Теперь мы можем создать процедуру пользователя, позволяющую подключить объекты ADO к любым данным в нашей БД. Эту процедуру целесообразно записать в стандартный модуль.
В разделе General модуля объявляем переменные:
Public cn As New ADODB.Connection, rs As New ADODB.RecordSet
Эти переменные можно объявлять и оператором Dim внутри той процедуры, где требуются данные из какой-либо таблицы или запроса. Если одновременно требуются данные из нескольких таблиц или запросов, то для каждой из них необходимо объявить такую же пару переменных.
Код процедуры будет следующим:
Public Sub Connect(db$, tb$, cn As Object, rs As Object)
cn.ConnectionString=“Driver=Microsoft Access Driver(*.mdb)
cn.Open (“Provider=Microsoft.Jet.OLEDB.3.51; DataSource=” & _
CurDir$ & “\” & db & “.mdb”)
rs.ActiveConnection = cn
rs.CursorType = adOpenDynamic
rs.LockType = adLockPessimistic
rs.Open tb
End Sub
Вызвать эту процедуру для подключения объектов к нашей БД можно будет в любом месте приложения, задав имена базы данных (параметр db) и таблицы (параметр tb). Например:
Call Connect(“Firma”, “Otdel”, cn, rs)
В результате объекты ADO будут подключены к БД “Firma” и метод Open объекта RecordSet заполнит его данными из таблицы “Otdel”.
Если требуется одновременно подключиться к нескольким таблицам (или запросам), то для каждой из них пишется свой оператор вызова процедуры Connect.
Приведенная выше процедура Connect будет работать, если файл БД расположен в папке проекта. Это удобно, так как делает приложение независимым от конкретного ПК и его дисковой системы. Однако, если проект расположен, например, на дискете, то файл БД может просто не поместиться на ней. В таком случае можно:
- в разделе General модуля объявить строковую переменную:
Public dbn$;
- оператор cn.Open в процедуре Connect записать в виде:
cn.Open (“Provider=Microsoft.Jet.OLEDB.3.51; DataSource=” & dbn)
- в процедуру загрузки формы записать код:
Private Sub Form_Load()
dbn = InputBox(“Введите полное имя файла БД”)
End Sub
Теперь, если файл БД “Firma” расположен на диске “D” в папке “databases”, то при запросе ввода полного имени файла нужно с клавиатуры ввести:
D:\databases\Firma.mdb