Дата публикации статьи: 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
Это дало нам, что если достигнут конец базы данных, то нужно переместиться на предыдущую запись и не будет ошибки. Тоже самое можно проделать со всеми кнопками.

Всё! Поздравляю! Вы сделали базу данных и систему управления к ней!
Беляев Данила