Открытие базы(источника данных)




Если база данных существует, то ее достаточно открыть прямо из приложения. Сделать это можно методом OpenDatabase объекта Workspace

Синтаксис:

Set database= DBEngine.Opendatabase (Name, Options, ReadOnly, Connect)

Здесь:

database- объектная переменная, представляющая создаваемый объект Database

Name-Строковое выражение, задающее имя существующего файла базы данных (обязательный параметр)

Options-различные опции доступа (необязательный параметр)

ReadOnly- (необязательный параметр) допустимые значения:

True (база данных открывается только для чтения)

False (по умолчанию, база данных открывается как для чтения так и для записи)

Connect-Дополнительный параметр, содержащий сведения о подключении, в том числе и пароли (необязательный параметр)

 

Объект Recordset

После открытия базы данных можно создавать объект Recordset. Он представляет собой записи исходной таблицы базы данных или результирующий набор записей, возвращаемый в результате запроса. Позволяет управлять в базе данных на уровне записи. На уровне полей управление данными осуществляется объектом Field.

Для создания объекта Recordset необходимо создать объектную переменную типа Recordset при помощи метода OpenRecordset объекта DataBase.

Синтаксис:

Set recordset = Database. OpenRecordset (Source, Options)

Здесь:

recordset - объектная переменная, представляющая открываемый объект recordset

Source-строковое выражение, определяющее имя таблицы, с которым связывается объект recordset

(обязательный параметр)

Options-специфирует работу пользователя с объектом recordset. Допустимые значения:

dDbAppendOnly- пользователь может добавлять записи, но не редактировать уже существуюшие

dbReadOnly- запрещено вносит изменения в записи

В приложении допускается определение произвольного числа объектных переменных, представляющих объект recordset.Разные объекты recordset могут иметь доступ к одним таблицам.

При работе с объектами доступа к данным почти все операции выполняются с помощью объектов recordset.

Приведем наиболее часто используемые методы и свойства объекта recordset, позволяющие анализировать, редактировать записи базы данных.

Методы:

  1. AddNew- создает и добовляет новую запись. После внесения изменений в новую запись следует вызвать метод Update для сохранения изменений и добавления записи в объект recordset. До вызова метода Update изменения в базу данных не заносятся.
  2. Close- закрывает открытый объект доступа к данным
  3. Delete- удаляет текущую запись
  4. Edit –копирует текущую запись в буфер копирования для последующего изменения. После внесения изменений в новую запись следует вызвать метод Update для сохранения изменений и добавления записи в объект recordset.
  5. MoveFirst,MoveLast,MoveNext,MovePrevious-делают текущей первую, последнюю, следующую и предыдущую запись объекта recordset
  6. FindFirst, FindLast, FindNext, FindPrevious- находят первую, последнюю, следующую и предыдущую запись объекта recordset, удовлетворяющую условиям и делают эту запись текущей.

Синтаксис (на примере метода FindNext):

FindNext Criteria,

Где Criteria- это выражение или переменная типа String, используемая для поиска записи. Например FindNext “ Оценка>3 and предмет=”ИПС”

Свойства:

1.BOF –возвращает значение TRUE, если указатель текущей записи расположен перед первой записью набора,и значение False, если он расположен на первой записи набора или на любой записи после нее.

2. EOF- возвращает значение TRUE, если указатель текущей записи расположен после последней записи набора,и значение False, если он расположен на последней записи набора или на любой записи перед ней.

3.NoMatch- возвращает значение TRUE, если нужная запись не найдена и False – в противном случае

Объект Field

Этот объект представляет собой поля конкретной таблицы базы данных. Ссылка на него осуществляется через объект recordset. Важнейшее его свойство Value возвращает данные из конкретного поля таблицы.

Например:

Set ws=DBEngine.Workspaces(0)

Set db=ws.OpendataBase(“C:\S.mdb”)

Set rs =db. OpenRecordset (“Клиенты”)

rs.MoveFirst

rs.Fields(“Возраст).Value- возвращает данные, находящиеся на пересечении первой записи таблицы “Клиенты” и поля “ Возраст”

 

Порядок работы при объектном доступе к данным (предполагается, что база данных существует):

 

  • Создать рабочую область или использовать стандартную рабочую область, как показано выше (Объект workspace)
  • Открыть базу данных (объект Database)
  • Создать набор записей (объект Recordset)
  • Непосредственно работать с конкретными записями и полями

Задание 6

Рассмотрим работу с базой данных на примере простого приложения. Для этого в СУБД MS Access предварительно создадим базу данных, и сохраним эту базу данных в файле Example.MDB.

База данных имеет простейшую структуру и состоит из одной таблицы Первый курс, в которой имеется только четыре поля: Фамилия, Группа, Предмет и Оценка.

Рассмотрим действия программы:

  1. При активизации диалогового окна выводит в поля ввода информацию о первом студенте из таблицы.
  2. При нажатии кнопок “>” и “<” происходит перемещение на одну запись вперед и назад, соответственно, а при нажатии кнопок “>>” и “<<” перемещение в конец и в начало таблицы
  3. При нажатии кнопки Закрыть закрывается база данных и диалоговое окно.

Для создания этого приложения сконструируйте форму, на которой разместите 4 надписи, 4 поля ввода, 5 кнопок. Установите значения свойства Name полей ввода равными txtName, txtGroup, txtSubject и txtMark, кнопок - равными cmdFirst, cmdPrevious, cmdNext, cmdLast и cmdClose. В модуле формы наберите следующий код:

'Переменные уровня модуля

 

Private ws As Workspace

Private db As Database

Private rs As Recordset

Private Sub UserForm_Initialize()

' Создание рабочей области

Set ws = DBEngine.Workspaces(0)

' Открытие базы данных Example.MDB (предположим, что файл расположен в каталоге C:\WINDOWS\Рабочий стол\Example.mdb

Set db = ws.OpenDatabase("C:\WINDOWS\Рабочий стол\Example.mdb")

' Создание записей

Set rs = db.OpenRecordset("Первый курс")

' Вывод первой записи в поля диалогового окна

Showrecord

End Sub

 

Private Sub Showrecord()

' Вывод записи в поля диалогового окна

With rs

txtName.Text =.Fields("Фамилия").Value

txtGroup.Text =.Fields("Группа").Value

txtSubject.Text =.Fields("Предмет").Value

txtMark.Text =.Fields("Оценка").Value

End With

End Sub

 

Private Sub cmdFirst_Click()

' Переход к первой записи

rs.MoveFirst

Showrecord

End Sub

 

Private Sub cmdLast_Click()

' Переход к последней записи

rs.MoveLast

Showrecord

End Sub

 

Private Sub cmdPrevious_Click()

' Переход к предыдущей записи

rs.MovePrevious

If rs.BOF = True Then

rs.MoveFirst

MsgBox ("Первая запись")

End If

Showrecord

End Sub

 

Private Sub cmdNext_Click()

' Переход к следующей записи

rs.MoveNext

If rs.EOF = True Then

rs.MoveLast

MsgBox ("Последняя запись")

End If

Showrecord

End Sub

 

Private Sub cmdClose_Click()

' Закрытие записей, базы данных, рабочего пространства и окна

rs.Close

db.Close

ws.Close

Unload Me

End Sub

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: