Исходники
Статьи
Языки программирования
.NET Delphi Visual C++ Borland C++ Builder C/С++ и C# Базы Данных MySQL MSSQL Oracle PostgreSQL Interbase VisualFoxPro Веб-Мастеру PHP HTML Perl Java JavaScript Протоколы AJAX Технология Ajax Освоение Ajax Сети Беспроводные сети Локальные сети Сети хранения данных TCP/IP xDSL ATM Операционные системы Windows Linux Wap Книги и учебники
Скрипты
Магазин программиста
|
Ishodniki.Ru » Online книги » Visual Basic по шагам Шаг 61 - Реализация связи один ко многим Нам нужны две таблицы со связью один ко многим. Реализовать их можете по разному, можете использовать SQL Server или MDB. Выбор за Вами. Я буду использовать ADO и MS SQL Server. Итак, помещаем на форму ADODC. Сделаем два ADODC. Первый будет выдавать записи из таблицы otdel. SELECT * FROM otdel С ним будет связано текстовое поле с именем отдела, в свойстве DataField нужно указать имя поля. Второй 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, что и позволяет нам просматривать кто есть в отделах.
|
Форум Программиста
Новости Обзоры Магазин Программиста Каталог ссылок Поиск Добавить файл Обратная связь Рейтинги
|