Q&A

  • DBGrid 문제입니다..도와주세요ㅡ.ㅡ
아래와 같이 코딩했는데..폼2에서 검색할 이름을 입력하고 ok버튼을 누르면

폼1의 DBGrid에 결과값이 커서로 나타납니다..여기까지는 좋았는데..

문제가 검색창인 폼2를 닫으면 폼1의 DBGrid의 데이타가 사라져버립니다.

고수님들..좀 도와주세요..폼1에 DBGrid가 있고 폼2에 이름검색창을 다시하나 띄워서

검색해서 폼2가 종료되도 폼1의 DBGrid 데이터가 안사라지게 하는

방법좀 부탁 드립니다.

폼1의DBGrid 설정과 폼2의 쿼리가 잘못된거 같아요..아니면 원래 이렇게는 안되는게

아닌가..하네요..혼자 공부할려고 하니까..막히는게 넘넘 많네요..

바쁘시더라도 좀 도와주세요,..학교 프로젝트인데..정말 시간만까먹구 미치것네요..

그럼 고수님들 좀 부탁 드려요..





//이부분은 이름검색폼의 버튼부분입니다.

procedure TForm2.OKButtonClick(Sender: TObject);

begin

if Edit1.Text='' then

begin

showmessage('검색할 이름을 입력하세요');

Edit1.SetFocus;

end

else



Begin

Query1.Open;

Query1.Locate('DName',Edit1.Text,[loPartialkey,loCaseInsensitive]);

Form1.DBGrid1.DataSource:=Form2.DataSource1;

//폼2의 데이터소스를 받아 폼1의 DBGrid에 결과값이 커서로 나타난다.

end;



end;

1  COMMENTS
  • Profile
    하기 2001.05.21 20:52
    전에도 한번 질문을 하셔서 답이 올라 왔던것 같은데...

    Form1과 Form2가 있죠... 거기에 찾기는 Form2이고요...

    그리고 찾기하는 Qeury Component도 Form2에 있고요...

    Form2에서 찾기를 하고 Form2가 사라지기전에는 찾기한 상태 로 있고

    Form2가 사라지면 Form1의Grid 아무것도 표현을 하지 않죠...

    그건 DataSource의 연결이 잘못되었답니다.

    님이 하시려는 방법대로는 Query는 Form1에있어야 맞는거죠...

    Begin

    Query1.Open;

    Query1.Locate('DName',Edit1.Text,[loPartialkey,loCaseInsensitive]);

    Form1.DBGrid1.DataSource:=Form2.DataSource1;

    이부분에서 Query1을 Form1에 꺼내 놓으시고...

    Form1.Query1.이런식으로 하시면 되거든요... 어렵나???



    요점은 Query1은 form2가 아닌 form1에 있어야 하고... Form1의 Query

    에서 찾으셔야 한다는 이야기죠.. ^^:









    초보유저 wrote:

    > 아래와 같이 코딩했는데..폼2에서 검색할 이름을 입력하고 ok버튼을 누르면

    > 폼1의 DBGrid에 결과값이 커서로 나타납니다..여기까지는 좋았는데..

    > 문제가 검색창인 폼2를 닫으면 폼1의 DBGrid의 데이타가 사라져버립니다.

    > 고수님들..좀 도와주세요..폼1에 DBGrid가 있고 폼2에 이름검색창을 다시하나 띄워서

    > 검색해서 폼2가 종료되도 폼1의 DBGrid 데이터가 안사라지게 하는

    > 방법좀 부탁 드립니다.

    > 폼1의DBGrid 설정과 폼2의 쿼리가 잘못된거 같아요..아니면 원래 이렇게는 안되는게

    > 아닌가..하네요..혼자 공부할려고 하니까..막히는게 넘넘 많네요..

    > 바쁘시더라도 좀 도와주세요,..학교 프로젝트인데..정말 시간만까먹구 미치것네요..

    > 그럼 고수님들 좀 부탁 드려요..

    >

    >

    > //이부분은 이름검색폼의 버튼부분입니다.

    > procedure TForm2.OKButtonClick(Sender: TObject);

    > begin

    > if Edit1.Text='' then

    > begin

    > showmessage('검색할 이름을 입력하세요');

    > Edit1.SetFocus;

    > end

    > else

    >

    > Begin

    > Query1.Open;

    > Query1.Locate('DName',Edit1.Text,[loPartialkey,loCaseInsensitive]);

    > Form1.DBGrid1.DataSource:=Form2.DataSource1;

    > //폼2의 데이터소스를 받아 폼1의 DBGrid에 결과값이 커서로 나타난다.

    > end;

    >

    > end;