Имеется база данных в Access и доступ ней через ADO
Таблица Болезней (Bolezni) связана с Таблицей симптомов
(Simptomi) как "many-to-many" через
промежуточную таблицу Codes_1

Выглядит это так "Bolezni"
Kod_bolezni Nazvanie_bolezni
1 Аритмия
2 Атеросклероз
3 Гипотония
и т.д.

Simptomi
Kod_simptoma Nazvanie_simptoma
1 Нарушение ритма сердца
2 Боли в животе
3 Боли в пояснице
4 Температура
и т.д.

Codes_1
Kod_bolezni Kod_simptoma
1 1
2 1
2 4
1 3
и т.д.
Bolezni связана с Codes_1 как один ко многимпо полю Kod_bolezni
Simptomi связана с Codes_1 как один ко многим по полю Kod_simptoma

Я хочу бы чтобы по выбору нескольких симптомов из Simptomi
в ListView1 происходил бы выбор соответствующих болезней
Сам ListView1 я заполняю при активации формы так
Код

procedure TMainForm.FormActivate(Sender: TObject);
var
NewColumn: TListColumn;
begin
ListView1.ViewStyle:=vsReport;
ListView1.RowSelect:=true;
NewColumn := ListView1.Columns.Add;
NewColumn.Caption := '';
NewColumn := ListView1.Columns.Add;
NewColumn.Caption := 'Название симптома';
ListView1.Columns[0].Width:=17;
ListView1.Columns[1].Width:=200;
FindQuery.SQL.Text:='SELECT Nazvanie_simptoma, Kod_simptoma FROM Simptomi';
FindQuery.Open;
While not FindQuery.Eof do
begin
ListView1.Items.Add;
ListView1.Items[FindQuery.RecNo-1].SubItems.Add(FindQuery.FieldByName('Nazvanie_simptoma').AsString);
ListView1.Items[FindQuery.RecNo-1].Caption:=FindQuery.FieldByName('Kod_simptoma').AsString;
FindQuery.Next;
end;
end;

Где поле Kod_simptoma невидимо. Оно будет необходимо для другого
запроса.
Теперь я сделал SQL-запрос для вывода в ListView2 всех болезней
соответствующих выбранным симптомам и повесил на кнопку
Код

procedure TMainForm.Button1Click(Sender: TObject);
  var
NewColumn: TListColumn;
begin
ListView2.ViewStyle:=vsReport;
ListView2.RowSelect:=true;
NewColumn := ListView2.Columns.Add;
NewColumn.Caption := 'Код болезни';
NewColumn := ListView2.Columns.Add;
NewColumn.Caption := 'Название болезни';
ListView2.Columns[0].Width:=17;
ListView2.Columns[1].Width:=200;

BolezniQuery.SQL.Text:='SELECT distinct Nazvanie_bolezni FROM Simptomi INNER JOIN (Bolezni INNER JOIN Codes_1 ON Bolezni.Kod_bolezni = Codes_1.Kod_bolezni)'
+'ON Simptomi.Kod_simptoma = Codes_1.Kod_simptoma WHERE (Codes_1.Kod_simptoma) In & #40;1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,2
9,30,31,32,33,34,35,365,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,'
+& #39;55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,8
0,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,1
05,106,'
+& #39;107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,
126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,142,143,144,
145,146,147,148,149,150,151,152,153,154,155,156,157,158)';
BolezniQuery.Open;
While not BolezniQuery.Eof do
begin
ListView2.Items.Add;
FieldByName('Kod_bolezni').AsString;
ListView2.Items[BolezniQuery.RecNo-1].SubItems.Add(BolezniQuery.FieldByName('Nazvanie_bolezni').AsString);
BolezniQuery.Next;
end;
end;

Он работает, но заполняет ListView2 всеми болезнями из базы

НАКОНЕЦ, САМ ВОПРОС: КАК МНЕ И КУДА ПЕРЕДАТЬ В ПРЕД. ЗАПРОС
ИНДЕКСЫ ВЫБРАННЫХ СТРОК ListView1(симптомы)(ВМЕСТЕ С Kod_simptoma)
ДЛЯ ТОГО ЧТОБЫ ОН ОТОБРАЗИЛ ТОЛЬКО СООТВЕТСТВУЮЩИЕ БОЛЕЗНИ.

СПАСИБО, ЧТО ДОЧИТАЛИ ДО КОНЦА! wink.gif