Шаг 69 - Метод CreateTableDef

Описание
Создает новый объект TableDef (только в рабочей области ядра Microsoft Jet).

Set таблица = базаДанных.CreateTableDef (имя, атрибуты, источник, подключение)

Параметры
таблица
Объектная переменная, представляющая создаваемый объект TableDef.
базаДанных
Объектная переменная, представляющая объект Database, который используется при создании нового объекта TableDef.
имя
Необязательный. Выражение или переменная типа Variant (подтип String), содержащая уникальное имя нового объекта TableDef. Дополнительные сведения о допустимых именах объектов TableDef приведены в разделе для свойства Name.
атрибуты
Необязательный. Константа или комбинация констант, задающая одну или несколько характеристик нового объекта TableDef. Дополнительные сведения приведены в разделе для свойства Attributes.
источник
Необязательный. Выражение или переменная типа Variant (подтип String), задающая имя таблицы внешней базы данных, являющейся источником данных. Строка источник становится значением свойства SourceTableName нового объекта TableDef.
подключение
Необязательный. Выражение или переменная типа Variant (подтип String), содержащая информацию об источнике данных открытой базы данных, о базе данных, используемой в запросе к серверу, или о присоединенной таблице. Дополнительные сведения о допустимых строках подключения приведены в разделе для свойства Connect.

Замечания
Если один или несколько необязательных элементов синтаксиса опущены при вызове метода CreateTableDef, допускается использование соответствующих инструкций присваивания для задания или изменения значения соответствующего свойства перед добавлением нового объекта в семейство. После добавления нового объекта в семейство допускается изменение значений некоторых (но не всех) свойств таблицы. Дополнительные сведения приведены в разделах, посвященных конкретным свойствам.
Если аргумент имя указывает на объект, который уже добавлен в семейство или если для добавляемого объекта TableDef или Field заданы недопустимые значения свойств, то при вызове метода Append возникает ошибка выполнения. Кроме того, добавление объекта TableDef в семейство TableDefs невозможно до описания по крайней мере одного объекта Field в объекте TableDef.
Для удаления объекта TableDef из семейства TableDefs следует применить метод Delete к семейству.

Пример
В данном примере с помощью свойств Connect и ReturnsRecords из базы данных на сервере Microsoft SQL Server отбираются пять книг, имеющих максимальные результаты продаж за год. Если обнаруживается совпадение в результатах продаж, размер выводящегося списка увеличивается и выводится сообщение с объяснением причины.

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 > 5 Then
			strMessage = strMessage & "(В списке " & vbCr & .RecordCount & 	" книг, так как несколько имеют одинаковые результаты)"
		End If

		MsgBox strMessage
		.Close
	End With

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

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

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 13.03.2002