위의 내용을 잘 보았습니다. 그런데 한가지 문제가 있더군요. 만약 DBCombobox의 항목이 될 필드가 프라이머리키로 지정된 필드가 아닐경우는 값이 중복되어 들어가는 경우가 생기게 됩니다. 그럴 경우 위와같이 코딩을 하게 되면 똑같은 항목이 DBCombobox의 item으로 설정되므로 같은 값이 여러개가 나올 경우가 생기게 됩니다.
그렇게 하지 않기 위해서는 table을 연결하는 경우는 잘 모르고요.query를 사용해 보시는것이 어떨런지요.
procedure TForm1.FormCreate(Sender: TObject);
begin
with query1 do begin
close;
sql.clear;
sql.add('select distinct(item으로 만들 필드명) from 연결할 DB명');
open;
end;
// 먼저 연결할 DB에서 DBCombobox로 설정할 필드를 distinct명령을 사용합니다.
//distinct명령어는 필드내에 중복되는 값을 없앱니다.
//그 후에 아래와같이 설정을 하면 중복되는 값은 한번만 항목으로 설정이 됩니다.
//form이 생성될때만 위와 같이 코딩한 후 DBCombobox의 Item을 생성한 후 다시 SQL문은 원래대로 설정해놓으면 됩니다.
> 안녕하세요.
> 델파이 초보자입니다.
> 죄송합니다만 DBcombobox에 대해서 물어보고 싶은게 있는데요.
> DBcombobox랑 table을 엮어서 table의 자료를 DBcombobox에 list형식으로
> 나오도록 하고 싶은데 DBcombobox에는 Table 자료중 첫번째 자료만
> 나오네요.
> Table에 있는 모든 데이터가 DBcombobox에 나와서 선택할 수 있도록
> 했으면 좋겠는데요.
> 어떻게 하면 될까요 ?
>
> 도와주세요......
>
이재식 Wrote :
안녕하십니까?
원하시는 정확한 컴포넌트는 델파이 안에 없습니다.
그러나, 방법이 있습니다.
약간의 코딩만 하시면 됩니다.
이렇게 하세요.
var
i : integer ;
begin
while not Table1.Eof do
begin
DBComboBox1.Items.Add(Table1.fieldbyname('필드명').asString) ;
Table1.Next ;
end ;
end ;
위 코딩을 formCreate 또는 formShow이벤트에 코딩을
하시면 원하시는 되로 전체 필드를 불러올 수 있고요,
선택도 할 수 있습니다.
노파심에서 말씀드리는데요,
물론 DBcomboBox1와 테이블과 연결을 시켜야 하고요,
테이블은 open이 되어있어야겠지요.
그럼...