쿼리를 이용하여 테이블의 내용을 부분적, 선택적으로 표출하려고 합니다. 테이블의 전체내용이나 한 필드를 표출하기는 쉬운데 위와 같이 하려고 하니까 어렵네요.
책과 여러 곳의 질문대답란을 검색해 봤지만 혼자 하니까 어렵군요. 물론 유사하거나 조금만 응용하면 되는 것이 있겠지만 또 부탁드립니다.
예>
firstname class
김 A
이 A
박 B
최 B
정 B
장 C
송 C
강 C
오 D
유 D
라는 테이블이 있다고 가정.
학급(class)을 나타내는 리스트박스에서 A를 선택하면 A에 관련된 '김' 과 '이'가 다른 리스트박스에 표출되고, B를 선택하면 '박' 과 '최' 와 '정'이 표출되는 식의 프로그램 방법을 알고싶습니다.
같은 질문과 답이 있었다면 죄송합니다.
다른 분들도 참고하시기 바랍니다.
1. LEE님 도움말
먼저 class 분류 listbox1용 sql문장
-> 이문장은 form open event 또는 formshow 등 필요한 이벤트에서 사용하시면 되구요
listbox1.Clear;
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('select class from table1 ');
Query1.Sql.Add('group by class ');
Query1.Sql.Add('order by class ');
Query1.Open;
Repeat
listbox1.item.add(Query1.FieldByName('class').AsString);
Query1.Next;
Until
Query1.Eof;
class 분류 지정시 관련자료 listbox2용 sql문장
-> 이문장은 listbox2의 enter event 또는 필요한 이벤트에서 사용하거나
listbox1의 change event에서 사용할 수 있겠네요.
listbox2.Clear;
Query2.Close;
Query2.Sql.Clear;
Query2.Sql.Add('select firstname from table1 ');
Query2.Sql.Add('where class = :Pclass ');
Query2.ParamByName('Pclass').ASString := listbox1.Text;
Query2.Open;
Repeat
listbox2.item.add(Query2.FieldByName('firstname').AsString);
Query2.Next;
Until
Query2.Eof;
2. 1님 도움말
마스터 - 디테일 쓰면 될것 같군요...
아니면...
전 마스터 디테일을 안 본 상태에서 구현해 본 적이 있는데..
테이블이나 쿼리의 afterScroll메서드(?) 이용해서 선택된 값을 변수에 할당하던지 해서 그 변수를 이용해서 쿼리 하시면 되겠네요...