Пример VB-2. Просмотр списка таблиц базы данных сервера
Целью этого примера является разработка приложения, которое позволит из списка баз данных сервера выбрать некоторую базу и сформировать для нее список таблиц. На рис. 23.7 представлена форма (в режиме разработки), в следующей далее таблице приведены свойства элементов формы.
Рис. 23.7
Форма для просмотра списка таблиц базы данных сервера (в режиме разработки)
Тип элемента | Свойство, которое изменено (используется в коде) | Значение | Примечание |
UserForm | Name | Form1 | Имя формы, на которое можно ссылаться в коде. |
Caption | Тестирование SQL-DMO (2) | Заголовок. | |
Frame | Name | Frame1 | |
Caption | Базы данных SQL Server | Текст – заголовок для Combo1. | |
ComboBox | Name | Combo1 | Список для отображения (и выбора) наименований баз данных. |
Frame | Name | Frame2 | |
Caption | Таблицы | Текст – заголовок для List1. | |
ListBox | Name | List1 | Список для отображения наименований таблиц выбранной в Combo1 базы данных. |
CommandButton | Name | Command1 | Кнопка для окончания работы с приложением. |
Caption | Выход |
В листинге 23.2 приведен код модуля формы, а на рис. 23.8 — форма в режиме выполнения. В этом приложении список баз данных сервера заносится в комбинированный список Combo1 (строки 12–15). После формирования списка баз данных в процедуре загрузки формы вызывается событийная процедура Combo1_Click, в которой формируется список таблиц выбранной (текущей) базы данных. Для доступа к именам таблиц используется коллекция obj1(Trim(Combo1.Text)).Tables (строка 28) и свойство таблицы Name(строка 29).
Листинг 23.12 Код модуля формы для просмотра списка таблиц базы данных сервера
1: Dim sqlOb As SQLDMO.SQLServer
2: Dim obj1 As Object
3:
4: Private Sub Form_Load()
5:
6: Set sqlOb = New SQLDMO.SQLServer
7: sqlOb.Connect "TOSHIBA-USER", "Nata", "Nata"
8:
9: Set obj1 = sqlOb.Databases
10:
11:
12: For Each dbs In obj1
13: Combo1.AddItem dbs.Name
14: Combo1.Text = dbs.Name
15: Next dbs
16:
17: Combo1_Click
18:
19: End Sub
20:
21: Private Sub Combo1_Click()
22: 'занести в список List1 таблицы выбранной в Combo1 базы
23:
24: Frame2.Caption = "Таблицы базы '" & Trim(Combo1.Text) & "'"
25:
26: List1.Clear
27:
28: For Each tbl In obj1(Trim(Combo1.Text)).Tables
29: List1.AddItem tbl.Name
30: Next tbl
31:
32: End Sub
33:
34: Private Sub Command1_Click()
35: Unload Me
36: End Sub
Рис. 23.8
Форма для просмотра списка таблиц базы данных сервера (в режиме выполнения)