Исходники.Ру - Программирование
Исходники
Статьи
Книги и учебники
Скрипты
Новости RSS
Магазин программиста

Ishodniki.Ru » Online книги » Visual Basic по шагам

Шаг 61 - Реализация связи один ко многим

Нам нужны две таблицы со связью один ко многим. Реализовать их можете по разному, можете использовать SQL Server или MDB. Выбор за Вами. Я буду использовать ADO и MS SQL Server.

gif/61_1.gif (701 b)

Итак, помещаем на форму ADODC.  Сделаем два ADODC. Первый будет выдавать записи из таблицы otdel.

SELECT * FROM otdel

С ним будет связано текстовое поле с именем отдела, в свойстве DataField нужно указать имя поля.

gif/61_2.gif (3548 b)

Второй ADODC будет выбирать таблицу со списком людей.

SELECT * FROM piple

Он нам на экране не нужен и его можно сделать скрытым (Visible=FALSE). Связываем GRID с этим AdoDC. Но. Нам же нужно показывать в списке людей по отделам. То есть при каждом перемещении нужно делать запрос. Значит, нам нужно отловить событие перемещение и при каждом этом событии посылать новый запрос ADODC2.

Private Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum,

		ByVal pError As ADODB.Error,

		adStatus As ADODB.EventStatusEnum,

		ByVal pRecordset As ADODB.Recordset)

If Not pRecordset.EOF And Not pRecordset.BOF Then

Dim d As String

d = "SELECT * From piple WHERE ID_OTDEL=" + Str(pRecordset!ID_OTDEL)

Adodc2.RecordSource = d

Adodc2.Refresh

End If

End Sub

Еще раз, что мы сделали. Мы установили два ADODC. При перемещении в ADODC1 формируется запрос для ADODC2. И результат этого запроса отображается в GRID, что и позволяет нам просматривать кто есть в отделах.

gif/61_3.gif (3166 b)

 

Предыдущий шаг | Оглавление | Следующий шаг

Рассылка новостей
Рейтинги
© 2007, Программирование Исходники.Ру