Работа с Базами Данных

В предыдущих статьях (Создание Базы Данных), я попытался дать небольшой обзор о том как можно создавать Базы Данных. Те письма и отклики, которые я получил воодушивили меня на продолжение работы. В новом цикле статей я планирую показать как можно работать с созданной (или уже существующей) Базой Данных.

Открытие Базы Данных

После того как вы программно создали БД встает вопрос о том, как ее использовать. Естественно, вы же не будете создавать БД с помощью кода и работать с ней с помошью Access ! В данной, небольшой статье, я покажу на примере как можно будет открыть БД и считать данные из какой нибудь таблицы. Для того, чтобы всем было удобно, мы возьмем поставляемую с пакетом Visual Basic БД - Biblio.mdb. А тепрь приступим….

Откройте в VB новый проект, на зовите его как хотите, и незабудьте подключить библиотеку Microsoft DOA 3.51 Object Library в меню Project|References..

В раздел General Declaration поместите переменные которые позволят вам обращаться к объектам используемым для работы с БД.

Option Explicit

Dim WS As Workspace

Dim DB As Database

Dim RS As Recordset

Dim strDBPath As String

В процедуре Form_Load формы впишите код инициализирующий переменные.

strDBPath = "C:\Program Files\Microsoft Visual Studio\VB98\Biblio.mdb"

'Открываем рабочую область

Set WS = DBEngine.Workspaces(0)

'Открываем БД, где strDBPath – полный путь к БД (у вас он может быть чуть иным),

'False – означает, что мы открываем БД в режиме Exclusive (False),

'и для Read\Write (False)

Set DB = WS.OpenDatabase(strDBPath, False, False)

'Открываем таблицу Authors

Set RS = DB.OpenRecordset("Authors", dbOpenDynaset)

На форму поместите три метки (Lable) , три текстовых поля (TextBox) и кнопки (CommandButton). И опять в процедуре Form_Load впишем код для инициализации текстовых полей. Таким образом мы связываем таблицу Authors с нашей формой.

Text1.Text = RS("Au_ID")

Text2.Text = RS("Author")

Text3.Text = RS("Year Born")

Теперь для перемещения по записям нам необходимо в событие Command_Click каждой кнопки вписать свой код. Самый простой код будет у кнпок «Певую» и «Последнюю».

Private Sub Command1_Click()

'Перемещаемся на первую запись в таблице

RS.MoveFirst

TextEmpty

End Sub

Private Sub Command4_Click()

'Перемещаемся на последнюю запись в таблице

RS.MoveLast

TextEmpty

End Sub

Чуть посложней у кнопок «Следуящая» и «Предыдущая» так, как приходится проверять дошли ли вы до конца таблицы или нет (также проверяем дошли ли до начала таблицы).

Private Sub Command2_Click()

'Перемещаемся на следующую запись в таблице

If RS.EOF = True Then

MsgBox "Вы находитесь на последней записи.", vbExclamation, Me.Caption

Exit Sub

Else

RS.MoveNext

TextEmpty

End If

End Sub

Private Sub Command3_Click()

'Перемещаемся на предыдущую запись в таблице

If RS.BOF = True Then

MsgBox "Вы находитесь на первой записи.", vbExclamation, Me.Caption

Exit Sub

Else

RS.MovePrevious

TextEmpty

End If

End Sub

Инициализацию текстовых полей проводим в отдельной процедуре.

Private Sub TextEmpty()

'Обнуляем все поля перед их заполнением

Text1.Text = Empty

Text2.Text = Empty

Text3.Text = Empty

Text1.Text = RS("Au_ID")

Text2.Text = RS("Author")

Text3.Text = RS("Year Born")

End Sub

По окончанию работы с формой необходимо закрыть Базу Данных, хотя это произойдет автоматически, когда вы выгрузите форму, но лучше поставить код в процедуру Unload.

Закрываем Базу Данных

RS.Close

DB.Close

WS.Close

Set RS = Nothing

Set DB = Nothing

Set WS = Nothing

На этом пока закончим.