begin datamodulefm.at_student_add.Filtered:=false; datamodulefm.at_student_add.Open; datamodulefm.at_student_add.First; combobox2.Items.Clear; while (not datamodulefm.at_student_add.Eof) do begin str:=datamodulefm.at_student_add.fieldbyname('stucode').Value; if VarIsNull(str) then datamodulefm.at_student_add.Next else begin combobox2.Items.Add(str); datamodulefm.at_student_add.Next; end; end; datamodulefm.at_student_add.Close end;
谢谢楼上的!at_student_add是ADOTable还是ADOQuery呀?
Table 或 Query 操作都是一样的啊。大致步骤: Open 你的数据集,表或者查询 First 数据集的记录指针,使指向第一个记录 循环 直到数据集结束 在循环体中使用CombBox.Items.Add方法把你的字段添加到CombBox Next 在循环体中移动记录指针 Close 数据集
是adotable 楼下说的对,都一样用,adoquery这样 combobox2.Items.Clear; with adoquery1 do begin close; sql.clear; sql.add('select * from student'); open; while (not adoquery1.Eof) do begin str:=adoquery1['stucode']; if VarIsNull(str) then adoquery1.Next else begin combobox2.Items.Add(str); adoquery1.Next; end; end; 这是把student表中的stucode加到combobox2中
first while not eof begin combobox.add next end;
我这段代码那里有问题啊!怎么运行没反映哦!! 那位高手帮忙看看哦! procedure TForm3.FormShow(Sender: TObject); begin dm1.ADOQuery1.Close; dm1.ADOQuery1.SQL.Clear; dm1.ADOQuery1.SQL.text :='select jfjs_bh from jqjs'; dm1.ADOQuery1.Open; combobox1.items.clear; while dm1.ADOQuery1.Eof do begin combobox1.items.add(dm1.adoquery1.fieldbyname('jfjs_bh').asstring); dm1.ADOQuery1.Next; end; end;
procedure TForm1.FormCreate(Sender: TObject); var i:integer; begin for i:=0 to (query1.FieldCount-1) do begin combobox1.Items.Add(query1.Fields[i].FieldName); end; end;
combobox显示数据库中一列数据,要是编号相同怎么让他不重复显示啊!! 麻烦了!! ---------------------------------------------------------------------- select distinct 编号 from YourTableName
我用 procedure TForm3.ComboBox1KeyPress(Sender: TObject; var Key: Char); begin dm1.ADOQuery1.SQL.Text:='select * from jqjs where jfjs_bh='''+combobox1.Text+''''; dm1.ADOQuery1.Open; end; 显示combobox1选中的数据库中的数据。可是为什么没反映呢?
我也來一個 procedure TForm1.Button1Click(Sender: TObject); var I: Integer; begin ADOQuery1.Close; AdoQuery1.SQL.Text := 'Select Distinct Field1 from tablename'; try AdoQuery1.Open; except ShowMessage('查詢出錯'); end; ComboBox1.Items.Clear; ComboBox1.Items.BeginUpdate; try while not AdoQuery1.Eof do begin ComboBox1.Items.Add(AdoQuery1.FieldByName('Field1').AsString); AdoQuery1.Next; end; finally ComboBox1.Items.EndUpdate; end; end;
关注一下 ComboBox1.Items.Clear; with AdoQuery do Try Close; SQL.Text := 'Select Distinct Field1 from tablename'; Open; if IsEmpty then Exit; while Not Eof do begin ComboBox1.Items.Add(AdoQuery1.FieldByName('Field1').AsString); Next; end; except ShowMessage('出錯信息'); end; ComboBox1.Items.Update;
ComboBox1.Items.Clear; with AdoQuery do Try Close; SQL.Text := 'Select Distinct Field1 from tablename'; Open; if IsEmpty then Exit; while Not Eof do begin if adoquery1.fieldsbuname('fields1').asstring<>'' then //---去掉空值 ComboBox1.Items.Add(AdoQuery1.FieldByName('Field1').AsString); Next; end; except ShowMessage('出錯信息'); end; ComboBox1.Items.Update;
當然有啦 你用SQL語句查詢出一長串 如: declare @value set @value='' select @value=@value+field1+',' from (select distinct field1 from tablename) A set @value=left(@value,len(@value)-1) select @value然後 ComboBox1.Items.Delimiter := ','; ComboBox1.Items.DelimitedText := AdoQuery1.Fields[0].AsString;
datamodulefm.at_student_add.Filtered:=false;
datamodulefm.at_student_add.Open;
datamodulefm.at_student_add.First;
combobox2.Items.Clear;
while (not datamodulefm.at_student_add.Eof) do
begin
str:=datamodulefm.at_student_add.fieldbyname('stucode').Value;
if VarIsNull(str) then
datamodulefm.at_student_add.Next
else
begin
combobox2.Items.Add(str);
datamodulefm.at_student_add.Next;
end; end;
datamodulefm.at_student_add.Close
end;
Open 你的数据集,表或者查询
First 数据集的记录指针,使指向第一个记录
循环 直到数据集结束
在循环体中使用CombBox.Items.Add方法把你的字段添加到CombBox
Next 在循环体中移动记录指针
Close 数据集
combobox2.Items.Clear;
with adoquery1 do
begin
close;
sql.clear;
sql.add('select * from student');
open;
while (not adoquery1.Eof) do
begin
str:=adoquery1['stucode'];
if VarIsNull(str) then
adoquery1.Next
else
begin
combobox2.Items.Add(str);
adoquery1.Next;
end;
end;
这是把student表中的stucode加到combobox2中
while not eof
begin
combobox.add
next
end;
那位高手帮忙看看哦!
procedure TForm3.FormShow(Sender: TObject);
begin
dm1.ADOQuery1.Close;
dm1.ADOQuery1.SQL.Clear;
dm1.ADOQuery1.SQL.text :='select jfjs_bh from jqjs';
dm1.ADOQuery1.Open;
combobox1.items.clear;
while dm1.ADOQuery1.Eof do
begin
combobox1.items.add(dm1.adoquery1.fieldbyname('jfjs_bh').asstring);
dm1.ADOQuery1.Next;
end;
end;
循环条件错了呵呵
我还想问一下。
combobox显示数据库中一列数据,要是编号相同怎么让他不重复显示啊!!
麻烦了!!
var
i:integer;
begin
for i:=0 to (query1.FieldCount-1) do
begin
combobox1.Items.Add(query1.Fields[i].FieldName);
end;
end;
麻烦了!!
----------------------------------------------------------------------
select distinct 编号 from YourTableName
procedure TForm3.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
dm1.ADOQuery1.SQL.Text:='select * from jqjs where jfjs_bh='''+combobox1.Text+'''';
dm1.ADOQuery1.Open;
end;
显示combobox1选中的数据库中的数据。可是为什么没反映呢?
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
ADOQuery1.Close;
AdoQuery1.SQL.Text := 'Select Distinct Field1 from tablename';
try
AdoQuery1.Open;
except
ShowMessage('查詢出錯');
end;
ComboBox1.Items.Clear;
ComboBox1.Items.BeginUpdate;
try
while not AdoQuery1.Eof do
begin
ComboBox1.Items.Add(AdoQuery1.FieldByName('Field1').AsString);
AdoQuery1.Next;
end;
finally
ComboBox1.Items.EndUpdate;
end;
end;
ComboBox1.Items.Clear;
with AdoQuery do
Try
Close;
SQL.Text := 'Select Distinct Field1 from tablename';
Open;
if IsEmpty then Exit;
while Not Eof do
begin
ComboBox1.Items.Add(AdoQuery1.FieldByName('Field1').AsString);
Next;
end;
except
ShowMessage('出錯信息');
end;
ComboBox1.Items.Update;
with AdoQuery do
Try
Close;
SQL.Text := 'Select Distinct Field1 from tablename';
Open;
if IsEmpty then Exit;
while Not Eof do
begin
if adoquery1.fieldsbuname('fields1').asstring<>'' then //---去掉空值
ComboBox1.Items.Add(AdoQuery1.FieldByName('Field1').AsString);
Next;
end;
except
ShowMessage('出錯信息');
end;
ComboBox1.Items.Update;
你用SQL語句查詢出一長串
如:
declare @value
set @value=''
select @value=@value+field1+',' from (select distinct field1 from tablename) A
set @value=left(@value,len(@value)-1)
select @value然後
ComboBox1.Items.Delimiter := ',';
ComboBox1.Items.DelimitedText := AdoQuery1.Fields[0].AsString;