Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
к экзамену.doc
Скачиваний:
5
Добавлен:
27.10.2018
Размер:
141.82 Кб
Скачать

17. Программирование с объектами dao. Создание базы данных. Пример (фрагмент).

Создает новый объект Database, сохраняет базу данных на диске и возвращает открытый объект Database (только в рабочей области ядра Microsoft Jet).

Set базаДанных = рабочаяОбласть.CreateDatabase (имя, порядок, параметры)

Параметры

имя

Выражение типа String длиной до 255 символов, определяющее имя файла создаваемой базы данных. Следует указать полный путь и имя файла, например "C:\db1.mdb". Если пользователь не указывает расширение имени, автоматически добавляется расширение .mdb. Если сетевая операционная система это допускает, можно также указать сетевой путь к файлу, например, "\\server1\share1\dir1\db1". Данный метод позволяет создавать только файлы .mdb.

порядок

Строковое выражение, определяющее порядок символов, который будет использоваться в операциях сравнения и сортировки в создаваемой базе данных, как указано ниже в разделе "Значения". Данный аргумент является обязательным, в противном случае возникает ошибка. Допускается также создание пароля для нового объекта Database путем слияния строки пароля (начинающейся с символов ";pwd=") с константой в аргументе порядок, например:

dbLangCyrillic & ";pwd=МойПароль"

Если требуется задать то же значение аргумента порядок, что и в базе данных стараяБД (значение по умолчанию), но указать новый пароль, достаточно ввести строку пароля как значение аргумента порядок:

";pwd=НовыйПароль"

Пример

Следующая программа с помощью метода CreateDatabase создает новый зашифрованный объект Database.

Sub CreateDatabaseX()

Dim wrkDefault As Workspace

Dim dbsNew As DATABASE

Dim prpLoop As Property

' Определяет стандартный объект Workspace.

Set wrkDefault = DBEngine.Workspaces(0)

' Проверяет наличие файла, имеющего имя, которое

' будет присвоено новой базе данных.

If Dir("NewDB.mdb") <> "" Then Kill "NewDB.mdb"

' Создает новую зашифрованную базу данных

' с указанным используемым порядком символов.

Set dbsNew = wrkDefault.CreateDatabase("NewDB.mdb", dbLangGeneral, dbEncrypt)

With dbsNew

Debug.Print "Свойства " & .Name

' Отображает семейство Properties нового

' объекта Database.

For Each prpLoop In .Properties

If prpLoop <> "" Then Debug.Print " " & prpLoop.Name & " = " & prpLoop

Next prpLoop

End With

dbsNew.Close

End Sub

18. Программирование с объектами dao. Связывание таблиц. Связывание таблиц внешних баз данных. Пример (фрагмент).

Задает или возвращает значение, содержащее сведения об источнике открытого подключения, открытой базе данных, базе данных, используемой в запросе к серверу или присоединенной таблице. Для объектов Database, новых объектов Connection, присоединенных таблиц и объектов TableDef, еще не добавленных в семейство, значение данного свойства доступно для чтения/записи. Для объектов QueryDef и основных таблиц, данное свойство доступно только для чтения.

объект.Connect = типБазыДанных;параметры;

Параметры

объект

Объектное выражение, значением которого является один из объектов, перечисленных в списке "Применение".

типБазыДанных

Необязательный. Выражение типа String, определяющее тип базы данных. Для баз данных Microsoft Jet этот аргумент следует исключить; если при этом задается аргумент параметры, то вместо аргумента типБазыДанных следует подставить точку с запятой (;).

Значение

Для выполнения запроса к серверу SQL по таблице, присоединенной к файлу базы данных Microsoft Jet (.mdb), необходимо сначала задать в свойстве Connect базы данных присоединенной таблицы допустимую строку подключения ODBC.

Для объекта TableDef, представляющего присоединенную таблицу, значение свойства Connect может состоять из одного или двух компонентов (указателя типа базы данных и пути к базе данных), каждый из которых должен заканчиваться точкой запятой.

Путь, как показано в следующей таблице, задает полный путь к каталогу, содержащему файлы базы данных, и должен начинаться с идентификатора DATABASE=. В некоторых случаях (для Microsoft Excel и баз данных Microsoft Jet), имя файла необходимо включать в аргумент пути.

Замечания.

Значение свойства Connect необходимо задавать до значения свойства ReturnsRecords.

Необходимо иметь разрешения на доступ к компьютеру, на котором находится сервер базы данных, к которому требуется подключиться.

Пример

Sub ClientServerX1()

Dim dbsCurrent As Database

Dim qdfPassThrough As QueryDef

Dim qdfLocal As QueryDef

Dim rstTopFive As Recordset

Dim strMessage As String

' Открывает базу данных, для которой будут

' созданы объекты QueryDef.

Set dbsCurrent = OpenDatabase("DB1.mdb")

' Создает запрос к серверу для загрузки данных

' из базы данных Microsoft SQL Server.

Set qdfPassThrough = dbsCurrent.CreateQueryDef("ВсеНазвания")

qdfPassThrough.Connect = "ODBC;DATABASE=pubs;UID=sa;PWD=;DSN=Publishers"

qdfPassThrough.SQL = "SELECT * FROM titles " & "ORDER BY ytd_sales DESC"

qdfPassThrough.ReturnsRecords = True

' Создает временный объект QueryDef для загрузки данных из запроса к серверу.

Set qdfLocal = dbsCurrent.CreateQueryDef("")

qdfLocal.SQL = "SELECT TOP 5 title FROM ВсеНазвания"

Set rstTopFive = qdfLocal.OpenRecordset()

' Отображает результаты запросов.

With rstTopFive

strMessage = "Первые 5 бестселлеров:" & vbCr

Do While Not .EOF

strMessage = strMessage & " " & !Title & vbCr

.MoveNext

Loop

If .RecordCount gt; 5 Then

strMessage = strMessage & "(В списке " & vbCr & .RecordCount & " книг, так как несколько имеют одинаковые результаты)"

End If

MsgBox strMessage

.Close

End With

' Удаляет новый запрос к серверу, созданный только для демонстрации.

dbsCurrent.QueryDefs.Delete "ВсеНазвания"

dbsCurrent.Close

End Sub