Дата публикации статьи: 09.07.2003 00:00
Visual Basic является отличным инструментом для работы с базами данных. Самым
распространнённым форматом баз данных является Access - с расширеним файлов mdb.
Для создания базы данных в Бейсике есть Visual Data Manager, с помощью которого
можно создавать базы данных. Также для просмотра и редактирования в Бейсике баз
данных програмным путём существует объект Data - данные. С его помощью можно создавать,
изменять, редактировать и сохранять базы данных.
Создание базы данных.
Выберите в меню Tools объект Visual Data Manager, перед вами откроется окно с
названием VisData.
В меню "File" выбирите пункт "New" и "Microsoft Access",
там закладку "Version 7.0 MDB". Сохраните базу данных, например с именем
"mydata.mdb". Теперь перед вами открылось два окна - первое с названием
"Database window", второе с "SQL Statement". Первое окно содержит
только пункт "Properties", а второе пустое. В первом окне сделайте клик
правой кнопкой мыши и в меню выбирите "New table". У вас появилось окно
с названием "Table structure". В поле "Table name" введите
"mytable", например. Теперь нажмите на кнопку "Add Field"
и в появившемся окне, в поле "Name" введите "Name". Нажмите
"OK". Потом опять в этом же поле введите "Surname" и нажмите
"OK" затем "Close". Всё, теперь в окне "Field List"
есть два наших поля с указанными ранее именами. Нажмите "Build the Table".
Если вы сделали всё правильно, то в окне "Database window" появилась
закладка "mytable". Создание базы данных завершено! Теперь сдедайте
двойной клик по "mytable" и у вас появится окно с названием "Dinaset:mytable"
в котором будет два текстовых поля с именами "Name" и "Surname".
Нажмите кнопку "Add" и введите в первое какое-нибудь имя, а во второе
какую-нибудь фамилию. Нажмите "Update". Всё, теперь в базе данных есть
одна запись.
Визуальное моделирование базы данных закончено. Теперь переходим к программному
просмотру и редактированию базы данных.
Создайте стандартный проект, на панеле инструментов выбирите и положите на форму
обьект "Data", два текстовых поля - первое с именем "txtName",
второе "txtSurname" и четыре кнопки с такими именами: "btnNew"
- для добавления новой записи, "btnDel" - для удаления текущей записи,
"btnUpdate" - для обновления базы данных и "btnSearch" - для
поиска по базе данных. Впишите в поле "Caption" у "btnNew"
- "Добавить", у "btnDel" - "Удалить", у "btnUpdate"
- "Сохранить", у "btnSearch" - "Поиск". Теперь нам
надо связать два текстовых поля с базой данных. Кликните один раз на объекте Data
и на панели с параметрами в закладке "Databasename" укажите путь к созданной
нами базе данных с именем "mydata.mdb". Теперь в закладке "Record
sourse" выбирите единственную, созданную нами таблицу "mytable".
Всё, файл базы данных подключен к самой базе данных. Осталось подключить остальные
компоненты... Кликните один раз на текстовом поле с именем "txtName"
и на панели параметров в закладке "Data source" укажите единственную
"Data1", а в закладке "Data Field" укажите "Name".
Тоже самое делаем со вторым текстовым полем - в закладке "Data sourse"
укажите "Data1", а в закладке "Data Field" укажите "Surname".
Всё, запускайте проект! Если вы всё сделали правильно, то в текстовых полях должна
появиться та информация, которую вы вводили при проектировании базы данных в окне
"Dinaset:mytable", если её нет, то это значит что где-то вы допустили
ошибку :(
Осталось только построить механизм для работы с этой базой данных.
Делаем двойной клик по кнопке с названием "Добавить" и вписываем "data1.recordset.addnew".
Делаем двойной клик по кнопке с названием "Удалить" и вписываем
With Data1.Recordset
.Delete
.MoveNext
If .EOF Then .MoveLast
if .BOF Then MsgBox "База данных пуста!"
End With
Делаем двойной клик по кнопке с названием "Обновить" и вписываем
Data1.UpdateRecord
Data1.Recordset.Bookmark = Data1.Recordset.LastModified
Делаем двойной клик по кнопке с названием "Поиск" и вписываем
Data1.Recordset.FindFirst "Author = '" _
& Trim(InputBox("Введите имя:")) & "'"
If Data1.Recordset.NoMatch Then MsgBox "Имя не найдено"
Вместо FindFirst можно использовать следующие методы:
Оператор Действие
FindFirst Ищет первую запись в БД
FindLast Ищет последнюю запись в БД
FindNext Ищет следующую запись в БД
FindPrevious Ищет предыдущую запись в БД
Всё! Теперь запускайте проект и проверяйте.
Знаю, вам не хочется видеть на вашей форме эту убогую компоненту "Data",
вам ведь хочется управлять базой кнопочками или картинками?!
Поместите на форму ещё четыре кнопки: "btnFirts", в поле "Caption"
- "Первая"; "btnLast" - "Последняя"; "btnPrev"
- "Предыдущая" и "btnNext" - "Следующая". Делаем
двойной клик по кнопке "Первая" и вписываем "data1.recordset.moveFirst",
двойной клик по "Последняя" и вписываем "data1.recordset.movelast",
двойной клик по "Предыдущая" и вписываем "data1.recordset.moveprevious"
и двойной клик по "Следующая" и в код вписываем "data1.recordset.movenext".
Всё! Проверяйте.
Знаю-знаю, что когда вы листаете базу кнопками, доходя до последней записи срабатывает
ошибка с номером "3021" - она означает, что в базе данных больше нет
записей. В Бейсике есть отличный обработчик ошибок! Например:
Private Sub btnNext_Click()
'Сюда пишите "On Error Resume Next" и ошибки не будут срабатывать!
'Но лучше сделать так:
If Not Data1.Recordset.EOF Then
Data1.Recordset.MoveNext
Else
Data1.Recordset.MovePrevious
End If
End Sub
Это дало нам, что если достигнут конец базы данных, то нужно переместиться на
предыдущую запись и не будет ошибки. Тоже самое можно проделать со всеми кнопками.
Всё! Поздравляю! Вы сделали базу данных и систему управления к ней!
Беляев Данила
|