Q&A

  • 콤보박스의 내용에 해당하는 디비의 코드를
다른 테이블의 필드에 저장하려 합니다.

테이블이 두개가 있습니다.

기업체정보(CoInfo.DB)와 대분류(LargeCode)

기업체정보 테이블은 등록번호 주소 사업자 등등이 있고 대분류라는 필드가 있습니다.

대분류테이블은 코드와 대분류이름
              A         컴퓨터
              B         전자
              C         화학
               .            .
               "            "
등등입니다.

콤보박스에 대분류테이블중 대분류 이름을 뿌려주었습니다.
그중 콤보박스에서 선택하여 저장을 누르면 기업체정보테이블의 대분류필드에 대분류테이블의 코드가 들어가게 하고 싶은데 잘 모르겠습니다.
아무래도
inset
value (select
          from
          where)
를 써야 할 것 같은데 형식이나 문법을 잘 모르겠습니다.


쏘스를 보면

//저장버튼을 눌렀을 때 입니다.
procedure TTradeF.registClick(Sender: TObject);
var i, j : integer;
begin

  if not tbReg.Active then
    TbReg.Open;
  if not tbsuchul.Active then
    Tbsuchul.Open;
  if not tbproduct.Active then
    Tbproduct.Open;
  //try
    tbReg.insert;
    tbReg.FieldByName('dDate').asdateTime := DateTimePicker1.Date;
    tbReg.FieldByName('dno').value := edtdno.Text;
    tbReg.FieldByName('dname').value := dname.Text;
    tbReg.FieldByName('SaupNo').value := SaupNo.Text;
    tbReg.FieldByName('dzip').value := dzip.Text;
    tbReg.FieldByName('dadd').value := dadd.Text;
    tbReg.FieldByName('dtel').value := dtel.Text;
    tbReg.FieldByName('dFax').value := dFax.Text;
    tbReg.FieldByName('demail').value := dEMail.Text;
    tbReg.Post;
    tbReg.refresh;






    for i :=0 to mmsuchul.Lines.Count-1 do begin
    TbSuchul.Insert;
    TbSuchul.FieldByName('dno').Value := edtDno.Text;
    Tbsuchul.FieldByName('suchul').Value := mmSuchul.Lines.Strings[i];
    tbSuchul.Post;
    tbSuchul.Refresh;
    end;

    for j :=0 to mmproduct.Lines.Count-1 do begin
    Tbproduct.Insert;
    Tbproduct.FieldByName('dno').Value := edtDno.Text;
    Tbproduct.FieldByName('product').Value := mmproduct.Lines.Strings[j];
    Tbproduct.Post;
    Tbproduct.Refresh;
    end;

   with qrylarge do begin  <==이부분부터 잘 모르겠네여

     Close;
     SQL.Clear;
     SQL.Add('INSERT INTO CoInfo ');
     SQL.Add('(대코드) ');
     SQL.Add('VALUES');
     SQL.Add('');


     execsql;

    end;


  //except
  //showMessage('입력 중 오류발생');
  //end;

end;


procedure TTradeF.FormCreate(Sender: TObject);
begin
  DateTimePicker1.Date := date;
  with qryLarge do begin
    close;
    sql.Clear;
    sql.Add('select LargeName');
    sql.Add('from LargeCode');
    open;

    while not EOF do begin
      cblarge.Items.add(FieldByName('largeName').AsString);
      next;
    end;
  end;

end;

//요부분은 어제 가르쳐 주신부분입니다.감사
procedure TTradeF.cblargeChange(Sender: TObject);

begin
   with qryMiddle do begin
    Close;
    sql.Clear;
    sql.add('select MiddleName');
    sql.add('from middlecode');
    case  cblarge.ItemIndex  of
        0 : sql.add('where 중코드 like ''A%''');
        1 : sql.add('where 중코드 like ''B%''');
        2 : sql.add('where 중코드 like ''C%''');
        3 : sql.add('where 중코드 like ''D%''');
        4 : sql.add('where 중코드 like ''E%''');
        5 : sql.add('where 중코드 like ''F%''');
        6 : sql.add('where 중코드 like ''G%''');
        7 : sql.add('where 중코드 like ''H%''');
        8 : sql.add('where 중코드 like ''I%''');
        9 : sql.add('where 중코드 like ''J%''');
        10: sql.add('where 중코드 like ''K%''');
        11: sql.add('where 중코드 like ''L%''');
        12: sql.add('where 중코드 like ''M%''');
        13: sql.add('where 중코드 like ''N%''');
        14: sql.add('where 중코드 like ''O%''');
        15: sql.add('where 중코드 like ''P%''');
    end;//case

    open;
    cbmiddle.Clear;
    While not EOF do
    begin
        cbmiddle.Items.add(FieldByName('middleName').AsString);
        next;
    end; //while

end;
end;
end.
  
1  COMMENTS
  • Profile
    이경열 2002.01.11 08:31
    with Query do
    begin
       close;
       sql.Clear;
       sql.Add('select 코드, 코드명 from 대분류테이블');
       Open;
       combobox.items.Value(FieldByName('코드').AsString) := FieldByname('코드명').AsString;
    end;

    음...잘 생각이 나질 않는데... 위와 같은 방법으로 하시면 해결 하실꺼 같은데...^^;;

    콤보 박스에 코드명을 선택 했을 때 코드값을 넘기는 프로시져나 함수를 만들어서 쓰시면 될거 같네염...^^;;
    그럼 즐코 하시구염...
    좀더 확실한 게 있음 다시 답변 드리지염...
    • 나옹이
    • 2002.01.11 23:02
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 박상윤
      2002.01.12 01:03
      TWain 드라이버를 사용하셔서 이미지를 받으시면 됩니다. Twain은 스케너 , 디치털 카메라 등에서 사용합...
    • 나옹이
      2002.01.12 02:11
      Twain 드라이버는 .. 따로 설치를 해야 하는건가요? 자료실에 보면.. 정욱님께서 올려주신 MultiDe...
    • 오은경
    • 2002.01.11 22:50
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 블랙썬
    • 2002.01.11 22:44
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이희정
      2002.01.12 00:10
      mdb파일의 위치가 임의로 변할 수 있다면 문제가 되지만 프로그램 설치시나 기타 사용자가 정하는 ...
    • 장영철
    • 2002.01.11 21:13
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.01.11 22:28
      안녕하세요. 최용일입니다. 실행파일과 dll은 서로 다른 프로세스로 실행됩니다. 그러니까 이 경우는 us...
    • 장영철
      2002.01.11 22:54
      님께서 적어주신 방법대로 캡션을 변경하는 것은 문제 없이 되었으나 제가 예를 잘못 들어 제가 고민하고...
    • 최용일
      2002.01.12 02:50
      똑같은 방식으로 하면 되지 않나요? 파라매터나 필드로 Form_Main객체를 넘겨주시면 되죠... 뭐 별로 다...
    • 장영철
      2002.01.12 03:30
      답변 고맙습니다. 한번 고생좀 해 보겠습니다. 아직 델파이 문법이 약해 다양한 경우를 해보지 못하...
    • 오진욱
    • 2002.01.11 20:30
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 전민식
    • 2002.01.11 20:21
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.01.11 22:17
      안녕하세요. 최용일입니다. 레지스트리에 아래와 같은 형식으로 값들을 써주시면 됩니다. [HKEY_CLAS...
    • 전민식
      2002.01.14 20:44
      최용일님 덕분에 해결 되었습니다.. 넘 감사 합니다...
    • 아폴론
    • 2002.01.11 19:58
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 윤수아
      2002.01.11 20:46
      P_qr 가 nil일 경우를 체크 해주셔야 할 것 같네요
    • 아폴론
      2002.01.12 00:12
      A폼에서 Fm206rpt폼의 콤포넌트를 찾는건데 폼이 다르면 아래의 구문으로는 안되나요? P_qr이 nil일 경...
    • 최용일
      2002.01.12 03:01
      안녕하세요. 최용일입니다. Self는 자기 자신을 가리킵니다. 그러니까 Self.FindComponent를 하시면 ...
    • 아폴론
      2002.01.12 04:04
      with Fm206rpt do begin      for i := 48 to 59 do begin    &nb...
    • 박철식
    • 2002.01.11 17:32
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김선일
      2002.01.11 18:56
      ^^;; 왜 굳이 Memo Type을 String으로 바꾸시려 하시는지... Table에서는 String Type이면 255자가...
    • 김황중
    • 2002.01.11 17:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정해영
      2002.01.11 18:19
      프린트 포트랑 시리얼 포트 방식이 다르군요... 큰 도움이 될것 같습니다. 우선 컴포넌트를 구해야 겠네...
    • 김기수
      2002.01.11 18:21
      단축키까지는 모르겠지만 폼위의 컴포넌트들의 미세조정은 Ctrl 키와 화살표를 사용하시면 가능하구요, ...
    • 최경습
    • 2002.01.11 07:57
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 술친구
      2002.01.11 20:06
      비밀번호 틀렸을때 한줄이 빠진듯한데여..          &nb...
    • 최경습
      2002.01.11 23:29
      감사합니다. 이렇게 답변을 해주시니. 근데. 이렇게 했는데두. 안되는데..어찌된 일인지. 제가 잘...
    • 이정관
      2002.01.11 21:05
      com port를 사용해서 텍스트를 쓰거나 읽기 위해서는 Com Port를 핸들링할수 있는 컴포넌트가 있어야하구요...
    • 델파이탐크루즈
      2002.01.11 05:22
      이런 답변 쓰기 쑥스럽네여...  ^^; 하지만 모른다니까.. 헤헤.. 하지만 용기를 내어 .... ...
    • 손병욱
      2002.01.11 05:45
      우선 알려 줘서 고맙습니다. 한가지 묻고 싶은데요 질문에도 종류가 있나요?.. ^^: 그럼..
    • 델파이탐크루즈
      2002.01.11 19:47
      꼭 그런건 아니지만 이런질문은 책만 보면 나오는 것이거든요... 모르는건 물어보는것은 잘못된것이 아...
    • 백치미
    • 2002.01.11 04:23
    • 1 COMMENTS
    • /
    • 1 LIKES
    • 이경열
      2002.01.11 08:31
      with Query do begin    close;    sql.Clear;    sql.Add('select 코...
    • sonny
    • 2002.01.11 04:14
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이정관
      2002.01.11 04:09
      특정필드값에 NULL를 삽입시에는  update table_t set t_date = null하셔야 하구요 strtodat(ed...
    • 이경열
      2002.01.11 08:39
      edit1.text := ''; 꼭 날짜 형식으로 저장 하셔야 하나염? 음..그게 아니라면...그냥... 에디트가 널이...