Пример 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

Форма для просмотра списка таблиц базы данных сервера (в режиме выполнения)