Шаг 161 - Метод RefreshLink

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

таблица.RefreshLink

Параметры
таблица
задает объект TableDef, представляющий присоединенную таблицу, для которой требуется обновить сведения о подключении.

Замечания
Сведения о подключении таблицы изменяют путем сброса значения свойства Connect соответствующего объекта TableDef, после чего следует применить метод RefreshLink для обновления этих сведений. При использовании метода RefreshLink свойства присоединенной таблицы и объекты Relation не изменяются.
Для того чтобы заданные сведения о подключении были обновлены во всех семействах, связанных с описывающим присоединенную таблицу объектом TableDef, следует вызвать метод Refresh для каждого из семейств.

Пример
Следующая программа использует свойства Connect и SourceTableName для присоединения различных внешних таблиц к базе данных Microsoft. Для выполнения данной процедуры требуется процедура ConnectOutput.

Sub ConnectX()

	Dim dbsTemp As Database
	Dim strMenu As String
	Dim strInput As String

	' Открывает базу данных Microsoft Jet, к которой 
	' будет присоединена таблица.
	Set dbsTemp = OpenDatabase("DB1.mdb")
	' Сборка текста меню.
	strMenu = "Введите номер, определяющий источник:" & vbCr
	strMenu = strMenu & "   1. База данных Microsoft Jet" & vbCr
	strMenu = strMenu & "   2. Таблица Microsoft FoxPro 3.0" & vbCr
	strMenu = strMenu & "   3. Таблица dBASE" & vbCr
	strMenu = strMenu & "   4. Таблица Paradox" & vbCr
	strMenu = strMenu & "   M. (см. варианты 5-9)"
	' Принимает выбор пользователя.
	strInput = InputBox(strMenu)

	If UCase(strInput) = "M" Then
		' Сборка текста меню.
		strMenu = "Введите номер, определяющий источник:" & vbCr
		strMenu = strMenu & "   5. Электронная таблица Microsoft Excel" & vbCr
		strMenu = strMenu & "   6. Электронная таблица Lotus" & vbCr
		strMenu = strMenu & "   7. Текст, разделяемый запятыми (CSV)" & vbCr
		strMenu = strMenu & "   8. Таблица HTML" & vbCr
		strMenu = strMenu & "   9. Папка Microsoft Exchange"
		' Принимает выбор пользователя.
		strInput = InputBox(strMenu)

	End If

	' Вызывает процедуру ConnectOutput. Третий аргумент будет
	' использован как строка подключения, а четвертый 
	' как значение свойства SourceTableName.
	Select Case Val(strInput)

	Case 1
			ConnectOutput dbsTemp, 	"JetTable", ";DATABASE=C:\My Documents\Борей.mdb", 	"Employees"
	Case 2
			ConnectOutput dbsTemp, 	"FoxProTable", 	"FoxPro 3.0;DATABASE=C:\FoxPro30\Samples", "Q1Sales"
	Case 3
			ConnectOutput dbsTemp, 	"dBASETable", 	"dBase IV;DATABASE=C:\dBASE\Samples", "Accounts"
	Case 4
			ConnectOutput dbsTemp, 	"ParadoxTable", "Paradox 3.X;DATABASE=C:\Paradox\Samples", "Accounts"
	Case 5
			ConnectOutput dbsTemp, 	"ExcelTable", 	"Excel 5.0;" & 	"DATABASE=C:\Excel\Samples\Q1Sales.xls", "January Sales"
	Case 6
			ConnectOutput dbsTemp, 	"LotusTable", 	"Lotus WK3;" & 	"DATABASE=C:\Lotus\Samples\Sales.xls", 	"THIRDQTR"
	Case 7
			ConnectOutput dbsTemp, 	"CSVTable", "Text;DATABASE=C:\Samples", "Sample.txt"
	Case 8
			ConnectOutput dbsTemp, 	"HTMLTable", "HTML Import;DATABASE=http://" & 	"www.server1.com/samples/page1.html", "Q1SalesData"
	Case 9
			ConnectOutput dbsTemp, 	"ExchangeTable", "Exchange 4.0;MAPILEVEL=" & 	"Mailbox - Michelle Wortman (Exchange)" & "|People\Important;", "Jerry Wheeler"
	End Select

	dbsTemp.Close
End Sub

Sub ConnectOutput(dbsTemp As Database, strTable As String, strConnect As String, strSourceTable As String)

	Dim tdfLinked As TableDef
	Dim rstLinked As Recordset
	Dim intTemp As Integer

	' Создает новый объект TableDef,задает его свойства Connect
	' и SourceTableName на основании переданных аргументов,
	' добавляет объект в семейство TableDefs.
	Set tdfLinked = dbsTemp.CreateTableDef(strTable)

	tdfLinked.Connect = strConnect
	tdfLinked.SourceTableName = strSourceTable
	dbsTemp.TableDefs.Append tdfLinked
	Set rstLinked = dbsTemp.OpenRecordset(strTable)
	Debug.Print "Data from linked table:"
	' Отображает первые три записи присоединенной таблицы.
	intTemp = 1
	With rstLinked
		Do While Not .EOF And intTemp <= 3
			Debug.Print , .Fields(0), .Fields(1)
			intTemp = intTemp + 1
			.MoveNext
		Loop
		If Not .EOF Then Debug.Print , "[дополнительные записи]"
	.Close
	End With
	' Удаляет присоединенную таблицу, созданную
	' только для демонстрации.
	dbsTemp.TableDefs.Delete strTable
End Sub

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