MyTetra Share
Делитесь знаниями!
Шаг 43 - Свойство Type
Время создания: 16.03.2019 23:43
Текстовые метки: DAO, Справка DAO, Access, Type
Раздел: !Закладки - VBA - Access - DAO
Запись: xintrea/mytetra_db_adgaver_new/master/base/1483964320p3hr0kx4l5/text.html на raw.githubusercontent.com

Описание
Задает или возвращает значение, указывающее тип объекта или тип данных объекта.

Значение
Задаваемое или возвращаемое значение является константой, указывающей тип объекта или тип данных объекта. Для объектов
Field или Property данное свойство доступно для чтения/записи до добавления объекта в семейство или в другой объект, после этого свойство становится доступным только для чтения. Для объектов QueryDef, Recordset или Workspace это свойство доступно только для чтения. Для объектов Parameter в рабочей области Microsoft Jet это свойство доступно только для чтения. В рабочей области ODBCDirect это свойство всегда доступно для чтения/записи.
Для объектов
Field, Parameter или Property задаваемые или возвращаемые значения свойства определяются с помощью следующих констант:

Константа Тип

dbBigInt Big Integer

dbBinary Binary

dbBoolean Boolean

dbByte Byte

dbChar Char

dbCurrency Currency

dbDate Date/Time

dbDecimal Decimal

dbDouble Double

dbFloat Float

dbGUID GUID

dbInteger Integer

dbLong Long

dbLongBinary Long Binary (OLE Object)

dbMemo Memo

dbNumeric Numeric

dbSingle Single

dbText Text

dbTime Time

dbTimeStamp Time Stamp

dbVarBinary VarBinary

Для объекта QueryDef следующие константы определяют тип запроса:

  • dbQAction - Запрос на изменение
  • dbQAppend - Запрос на добавление записей
  • dbQCompound - Составной запрос
  • dbQCrosstab - Перекрестный запрос
  • dbQDDL - Управляющий запрос
  • dbQDelete - Запрос на удаление
  • dbQMakeTable - Запрос на создание таблицы
  • dbQProcedure - Процедурный запрос (только в рабочей области ODBCDirect)
  • dbQSelect - Запрос на выборку
  • dbQSetOperation - Запрос на объединение
  • dbQSPTBulk - Используется вместе с константой dbQSQLPassThrough для указания запроса, не возвращающего записи (только в рабочей области Microsoft Jet)
  • dbQSQLPassThrough - Запрос к серверу (только в рабочей области Microsoft Jet)
  • dbQUpdate - Запрос на обновление

Для того, чтобы создать запрос к серверу SQL в рабочей области Microsoft Jet, нет необходимости явно задавать в свойстве Type константу dbQSQLPassThrough. Этот тип задается ядром базы данных Microsoft Jet автоматически при создании объекта QueryDef и определении его свойства Connect.

  • dbOpenTable - Таблица (только в рабочей области Microsoft Jet).
  • dbOpenDynamic - Объект Recordset динамического типа (только в рабочей области ODBCDirect)
  • dbOpenDynaset - Динамический набор записей
  • dbOpenSnapshot - Статический набор записей
  • dbOpenForwardOnly - Статический набор записей с последовательным доступом

Следующие константы определяют тип объекта Workspace.

  • dbUseJet - Объект Workspace подключен к ядру базы данных Microsoft Jet.
  • dbUseODBC - Объект Workspace подключен к источнику данных ODBC.

Замечания
При добавлении нового объекта
Field, Parameter или Property в соответствующее семейство объекта Index, QueryDef, Recordset или TableDef возникает ошибка, если содержащая этот объект база данных не поддерживает тип данных, указанный для нового объекта.

Пример
Следующая программа демонстрирует применение свойства Type, возвращая имя константы, соответствующей значению свойства Type четырех разных объектов Recordsets. Для выполнения данной процедуры требуется функция
RecordsetType.

Sub TypeX()

 

    Dim dbsNorthwind As Database

    Dim rstEmployees As Recordset

    Set dbsNorthwind = OpenDatabase("Борей.mdb")

    ' По умолчанию используется константа dbOpenTable.

    Set rstEmployees =  dbsNorthwind.OpenRecordset("Сотрудники")

    Debug.Print     "Табличный объект Recordset (таблица 'Сотрудники'): " & RecordsetType(rstEmployees.Type)

    rstEmployees.Close

    Set rstEmployees = dbsNorthwind.OpenRecordset("Сотрудники", dbOpenDynaset)

    Debug.Print "Динамический набор записей (таблица 'Сотрудники'): " & RecordsetType(rstEmployees.Type)

    rstEmployees.Close

    Set rstEmployees = dbsNorthwind.OpenRecordset("Сотрудники", dbOpenSnapshot)

    Debug.Print "Статический набор записей (таблица 'Сотрудники'): " & RecordsetType(rstEmployees.Type)

    rstEmployees.Close

    Set rstEmployees = dbsNorthwind.OpenRecordset("Сотрудники", dbOpenForwardOnly)

    Debug.Print "Набор с последовательным доступом (таблица 'Сотрудники'): " & RecordsetType(rstEmployees.Type)

    rstEmployees.Close

    dbsNorthwind.Close

End Sub

 

Function RecordsetType(intType As Integer) As String

 

    Select Case intType

        Case dbOpenTable

            RecordsetType = "dbOpenTable"

        Case dbOpenDynaset

            RecordsetType = "dbOpenDynaset"

        Case dbOpenSnapshot

            RecordsetType = "dbOpenSnapshot"

        Case dbOpenForwardOnly

            RecordsetType = "dbOpenForwardOnly"

    End Select

 

End Function

 

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