MyTetra Share
Делитесь знаниями!
Шаг 11 - Метод OpenDatabase
Время создания: 16.03.2019 23:43
Текстовые метки: VBA, DAO, OpenDatabase
Раздел: !Закладки - VBA - Access - DAO
www.ПЕРВЫЕ ШАГИ.ru :: Шаг 11 - Метод OpenDatabase

Шаг 11 - Метод OpenDatabase<div style="position:absolute;left:-10000px;">< img src="5.png" style="border:0;" height="1" width="1" alt="top@Mail.ru"/>< /div>

Описание
Открывает указанную базу данных в объекте Workspace и возвращает ссылку на объект Database, представляющий эту базу данных.

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

Параметры
базаДанных
Объектная переменная, представляющая открываемый объект Database.
рабочаяОбласть
Необязательный. Объектная переменная, представляющая существующий объект Workspace, который будет содержать базу данных. Если аргумент рабочаяОбласть не задан, метод OpenDatabase использует стандартную рабочую область.
имяБД
Выражение или переменная типа String, задающая имя существующего файла базы данных с ядром Microsoft Jet или имя источника данных ODBC. Дополнительные сведения о значениях данного аргумента см. в разделе справки для свойства Name.
параметры
Необязательный. Выражение или переменная типа Variant, задающая параметры базы данных.

Для рабочей области ядра Microsoft Jet:

  • True - Открытие базы данных для монопольного доступа.
  • False - (По умолчанию). Открытие базы данных для общего доступа.

Для рабочей области ODBCDirect:

  • dbDriverNoPrompt - Диспетчер драйвера ODBC использует строку подключения, определяемую аргументами имяБД и подключение. Если этих данных недостаточно, возникает ошибка выполнения.
  • dbDriverPrompt - Диспетчер драйвера ODBC открывает диалоговое окно ODBC Data Sources, в котором отображаются данные, определяемые аргументами имяБД и подключение. Строка подключения образуется из имени источника данных, которое пользователь выбирает в диалоговых окнах, или, если имя источника данных не задано пользователем, используется стандартный источник данных.
  • dbDriverComplete - (По умолчанию). Если в аргументах подключение и имяБД заданы все необходимые для подключения сведения, диспетчер драйвера ODBC использует строку из аргумента подключение. В противном случае выполняются действия, аналогичные задаваемым константой dbDriverPrompt.
  • dbDriverCompleteRequired - Выполняются действия, аналогичные задаваемым константой dbDriverComplete, с тем лишь исключением, что драйвер ODBC отключает вывод приглашений на ввод сведений, не являющихся необходимыми для подключения.

толькоЧтение
Необязательный. Значение типа Variant (подтип Boolean), имеющее значение True, если база данных открывается только для чтения, и значение False (по умолчанию) при открытии базы данных с доступом для чтения и записи.
подключение
Необязательный. Выражение или переменная типа Variant (подтип String), содержащая сведения о подключении, в том числе пароли.

Замечания
При открытии базы данных она автоматически добавляется в семейство Databases. Кроме того, в рабочей области ODBCDirect создается объект Connection, соответствующий новому объекту Database. Этот объект Connection добавляется в семейство Connections того же объекта Workspace.
При указании аргумента имяБД необходимо иметь в виду следующее:
1. Если задается имя базы данных, уже открытой для монопольного доступа другим пользователем, возникает ошибка.
2. Если аргумент не задает имя существующей базы данных или допустимого источника данных ODBC, возникает ошибка.
3. Если значением аргумента является пустая строка (""), а аргумент подключение имеет значение "ODBC;", открывается диалоговое окно со списком имен всех зарегистрированных источников данных ODBC, в котором пользователь может выбрать нужную базу данных. 4. При открытии базы данных в рабочей области ODBCDirect с указанием имени источника данных в аргументе подключение пользователь имеет возможность задать в аргументе имяБД произвольную строку, которая в дальнейшем может использоваться в программах для ссылки на базу данных. Значение аргумента подключение образую два компонента: тип базы данных, за которым после точки с запятой (;) следуют необязательные аргументы. Указание типа базы данных, например, "ODBC;" или "FoxPro 2.5;" является обязательным. Необязательные аргументы, следующие в произвольном порядке, также разделяются символом точки с запятой. Одним из параметров может быть пароль (если пароль определен). Например:

"FoxPro 2.5; pwd=МойПароль"

Вызов метода NewPassword для объекта Database, не являющегося базой данных ODBCDirect, позволяет изменить параметр пароля, который задается в виде ";pwd=...". При указании строки источника необходимо определить аргументы параметры и толькоЧтение. Дополнительные сведения о синтаксисе см. в разделе справки для свойства Connect.
Для закрытия базы данных и удаления объекта Database из семейства Databases следует применить к этому объекту метод Close.
При подключении ядра Microsoft Jet к источнику данных ODBC пользователь имеет возможность повысить быстродействие приложения, открывая объект Database, подключенный к источнику данных ODBC, вместо присоединения отдельных объектов TableDef к конкретным таблицам в источнике данных ODBC.

Пример
Следующая программа использует метод OpenDatabase для открытия одной базы данных Microsoft Jet и двух баз данных ODBC, подключенных к ядру Microsoft Jet.

Sub OpenDatabaseX() Dim wrkJet As Workspace Dim dbsNorthwind As Database Dim dbsPubs As Database Dim dbsPubs2 As Database Dim dbsLoop As Database Dim prpLoop As Property ' Создает объект Workspace Microsoft Jet. Set wrkJet = CreateWorkspace("", "admin", "", dbUseJet) ' Открывает для монопольного доступа аргумент Database, ' представляющий сохраненную базу данных Microsoft Jet. MsgBox "Открытие базы данных 'Борей'..." Set dbsNorthwind = wrkJet.OpenDatabase("Борей.mdb", True) ' Открывает только для чтения объект Database, ' используя строку подключения. MsgBox "Открытие базы данных 'Publishers'..."

Set dbsPubs = wrkJet.OpenDatabase("Publishers", dbDriverNoPrompt, True, "ODBC;DATABASE=pubs;UID=sa;PWD=;DSN=Publishers") ' Открывает только для чтения объект Database с вводом ' недостающих данных в диалоговое окно диспетчера ' драйвера ODBC. MsgBox "Открытие копии базы данных 'Publishers'..." Set dbsPubs2 = wrkJet.OpenDatabase("Publishers", dbDriverCompleteRequired, True, "ODBC;DATABASE=pubs;DSN=Publishers;") ' Отображает семейство Databases. For Each dbsLoop In wrkJet.Databases Debug.Print "Свойства объекта Database " & dbsLoop.Name & ":" On Error Resume Next ' Отображает семейство Properties каждого ' объекта Database. For Each prpLoop In dbsLoop.Properties If prpLoop.Name = "Connection" Then ' Свойство фактически возвращает объект Connection. Debug.Print " Connection[.Name] = " & dbsLoop.Connection.Name Else Debug.Print " " & prpLoop.Name & " = " & prpLoop End If Next prpLoop On Error GoTo 0 Next dbsLoop dbsNorthwind.Close dbsPubs.Close dbsPubs2.Close wrkJet.CloseEnd Sub

Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования