- •17. Программирование с объектами dao. Создание базы данных. Пример (фрагмент).
- •18. Программирование с объектами dao. Связывание таблиц. Связывание таблиц внешних баз данных. Пример (фрагмент).
- •21. Программирование с объектами dao. Создание переменной RecordSet. Перемещение по набору записей. Пример (фрагмент).
- •22.Программирование с объектами dao. Работа с полями объекта RecordSet. Создание запросов.
- •16.Объектая модель dao. Объекты dbEngine, Workspace, Database, TableDef, QueryDef, RecordSet, Container, Relation, Document, Field, Index, Error, Parametr. Пример (фрагмент).
- •1 Вопрос.
- •2 Вопрос.
- •3 Вопрос.
- •4 Вопрос.
- •Динамический обмен данными dde. Свойства dde. Пример (фрагмент).
- •Свойство LinkMode
- •Свойство LinkTopic
- •Свойство Linkltem
- •Свойство LinkTimeout
- •25.Динамический обмен данными dde. События dde. Пример (фрагмент).
- •Метод LinkRequest
- •Метод LinkPoke
- •Метод LinkExecute
- •26. Динамический обмен данными dde. Методы dde. Пример (фрагмент).
- •Событие LinkNotify
- •Событие LinkError
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