Пример VB-7. Просмотр списков таблиц баз данных двух серверов
В этом примере диалоговое окно отображает списки баз данных сразу двух серверов. На рис. 23.20 представлена форма (в режиме разработки).
Рис. 23.20
Форма для просмотра списков таблиц баз данных двух серверов (в режиме разработки)
Для этого проекта таблица свойств очень похожа на таблицу примера 2, только здесь используются массивы элементов управления Combo1(2), List(2). Листинг 23.7 содержит код модуля формы, а на рис. 23.21 приведен фрагмент работы с проектом в режиме выполнения.
Листинг 23.7 Код модуля формы для просмотра списков таблиц баз данных двух серверов
1: Dim sqlOb1 As SQLDMO.SQLServer
2: Dim sqlOb2 As SQLDMO.SQLServer
3: Dim obj1 As Object
4: Dim obj2 As Object
5:
6: Private Sub Form_Load()
7:
8: Set sqlOb1 = New SQLDMO.SQLServer
9: sqlOb1.Connect "VOVA", "sa", ""
10:
11:
12: Set sqlOb2 = New SQLDMO.SQLServer
13: sqlOb2.LoginSecure = True
14: sqlOb2.Connect "TOSHIBA-USER"
15:
16: Set obj1 = sqlOb1.Databases
17: Set obj2 = sqlOb2.Databases
18:
19: For Each dbs In obj1
20: Combo1(0).AddItem dbs.Name
21: Combo1(0).Text = dbs.Name
22: Next dbs
23:
24: Combo1_Click (0)
25:
26: For Each dbs In obj2
27: Combo1(1).AddItem dbs.Name
28: Combo1(1).Text = dbs.Name
29: Next dbs
30:
31: Combo1_Click (1)
32:
33:
34:
35: End Sub
36:
37: Private Sub Combo1_Click(Index As Integer)
38: 'занести в список List1 таблицы выбранной в Combo1 базы
39:
40: Dim objN As SQLDMO.Tables
41:
42: Frame2.Caption = "Таблицы базы '" & Trim(Combo1(Index).Text) & "'"
43:
44: List1.Clear
45: If Index = 0 Then
46: Set objN = obj1(Trim(Combo1(Index).Text)).Tables
47: Else
48: Set objN = obj2(Trim(Combo1(Index).Text)).Tables
49: End If
50:
51: For Each tbl In objN
52: List1(Index).AddItem tbl.Name
53: Next tbl
54: End Sub
55:
56: Private Sub Command1_Click()
57: Unload Me
58: End Sub
Рис. 23.21
Форма для просмотра списков таблиц баз данных двух серверов (в режиме выполнения)
Объекты SQL-DMO можно использовать и из VBA-кода приложений MS Office, в том числе и Access. Все приведенные примеры можно использовать (с некоторыми изменениями) и в Excel, и в Word, и в Access.