Q&A

  • Form1 에서 DBGrid를 더블클릭하여 Form2의 다른 table을 열려면???
안녕하세요?

오늘도 날씨가 무지 화창하군요...

오늘 질문할 내용을 적어 보겠습니다.



먼저 세개의 테이블이 있습니다.

table_a 에는 학번과 이름의 컬럼이 있고

table_b 에는 학번과 주소와 전화번호가 있고

table_c 에는 학번과 월별, 국어, 영어, 수학의 점수가 있습니다.(3월말,4월말,5월말)



Form1에 DBGrid를 넣고 table_a 와 연결합니다.

그러면 학번과 이름이 나오겠죠?

이때 DBGrid를 더블클릭하면

Form2가 열리면서 학번이 일치하는 table_b의 내용의 dbedit와(학번,주소,전화번호)

학번이 일치하는 table_c 의 DBGrid(학번,월별,국어,영어,수학)를 열려고 합니다.

어떻게 해야 하나요?



이거 제 수준에선 무지하게 어려운겁니다.

부디 고수님들의 조언 부탁드립니다.

즐거운 하루 되십시오...



2  COMMENTS
  • Profile
    백근훈 2001.05.25 03:42
    새까만넘 wrote:

    > 안녕하세요?

    > 오늘도 날씨가 무지 화창하군요...

    > 오늘 질문할 내용을 적어 보겠습니다.

    >

    > 먼저 세개의 테이블이 있습니다.

    > table_a 에는 학번과 이름의 컬럼이 있고

    > table_b 에는 학번과 주소와 전화번호가 있고

    > table_c 에는 학번과 월별, 국어, 영어, 수학의 점수가 있습니다.(3월말,4월말,5월말)

    >

    > Form1에 DBGrid를 넣고 table_a 와 연결합니다.

    > 그러면 학번과 이름이 나오겠죠?

    > 이때 DBGrid를 더블클릭하면

    > Form2가 열리면서 학번이 일치하는 table_b의 내용의 dbedit와(학번,주소,전화번호)

    > 학번이 일치하는 table_c 의 DBGrid(학번,월별,국어,영어,수학)를 열려고 합니다.

    > 어떻게 해야 하나요?

    >

    > 이거 제 수준에선 무지하게 어려운겁니다.

    > 부디 고수님들의 조언 부탁드립니다.

    > 즐거운 하루 되십시오...

    >



    재밌을 것 같아 후다닥 만들어 봤습니다.

    특별한 건 없구 아래 코드를 잘 활용하시면 됩니다. ^_^



    procedure TForm1.DBGrid1DblClick(Sender: TObject);

    begin

    with DBGrid1.DataSource.DataSet do

    begin

    GotoBookmark(pointer(DBGrid1.SelectedRows.Items[0]));

    Form2.Visible := True;



    Form2.Query1.ParamByName('KeKe').AsString := ActiveBuffer;

    Form2.Query1.Active := True;

    end;

    end;



    [참고] TForm1 : 해당 학번의 Row 더블클릭하는 폼

    TForm2 : 더블클릭 후 새로 뜨는(성적을 보여주는) 창



    DBGrid1 : TForm1의 DBGrid

    Query1 : TForm2의 성적 DBGrid와 연결된 Query

    [참고] SQL : select * from table_b where id = :KeKe;





    냠.. 만약에 모양도 이쁘게 만들어야 되고 제어도 많이 해야한다면

    님이 그냥 Grid를 새로 만드심이 좋습니다.

    단지 이걸로 끝나는 거라면 걍 이렇게 쓰셔도 문안 할 것 같구요





  • Profile
    송수정 2001.05.25 03:28
    새까만넘 wrote:

    > 안녕하세요?

    > 오늘도 날씨가 무지 화창하군요...

    > 오늘 질문할 내용을 적어 보겠습니다.

    >

    > 먼저 세개의 테이블이 있습니다.

    > table_a 에는 학번과 이름의 컬럼이 있고

    > table_b 에는 학번과 주소와 전화번호가 있고

    > table_c 에는 학번과 월별, 국어, 영어, 수학의 점수가 있습니다.(3월말,4월말,5월말)

    >

    > Form1에 DBGrid를 넣고 table_a 와 연결합니다.

    > 그러면 학번과 이름이 나오겠죠?

    > 이때 DBGrid를 더블클릭하면

    > Form2가 열리면서 학번이 일치하는 table_b의 내용의 dbedit와(학번,주소,전화번호)

    > 학번이 일치하는 table_c 의 DBGrid(학번,월별,국어,영어,수학)를 열려고 합니다.

    > 어떻게 해야 하나요?



    DBGrid1DblClick 이벤트

    begin

    with query1 do begin

    close;

    sql.clear;

    sql.add('select * from table_b where 학번=:학번');

    parambyname('학번').asstring := table_a쿼리명.fieldbyname('학번').asstring;

    open;

    end;

    form2.edit1.text := query1.fieldbyname('학번').asstring;

    form2.edit2.text := query1.fieldbyname('주소').asstring;

    form2.edit3.text := query1.fieldbyname('전화번호').asstring;

    with form2.table_3의 쿼리명 do begin

    close;

    sql.clear;

    sql.add('select * from table_c where 학번=:학번');

    parambyname('학번').asstring := table_a쿼리명.fieldbyname('학번').asstring;

    open;

    end;

    form2.show;

    end;

    요론식으로 함 될거 같은데요..