想用两个combobox和一个edit做一个查询~根据在combobox1中选中的项目~combobox2显示相应的子项目~再根据combobox2中选中的子项目~在edit中显示最终结果~我是用sql server2000和delphi连接的~combobox1中的代码已经写出来了~怎么和combobox2连接我就不知道怎么写了~请各位高手帮帮忙~
以下是实现combobox1的代码~
procedure TForm12.FormCreate(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('SELECt distinct brand from CPU');
adoquery1.Open;
combobox1.Items.Clear;
while not adoquery1.Eof do
begin
combobox1.Items.Add(adoquery1.fieldbyname('brand').AsString);
adoquery1.Next;
end;
end;
对了~我的两个combobox的text属性都是‘请选择’~
在delphi中如何用combobox实现分级读取数据库中的内容
答案:2 悬赏:30
解决时间 2021-04-06 10:46
- 提问者网友:醉人眸
- 2021-04-06 05:24
最佳答案
- 二级知识专家网友:初心未变
- 2021-04-06 06:25
你可以在combobox1的OnChange事件里写代码
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('SELECt distinct XXX from CPU where brand='''+combobox1.text+'''');
adoquery1.Open;
combobox2.Items.Clear;
while not adoquery1.Eof do
begin
combobox2.Items.Add(adoquery1.fieldbyname('XXX').AsString);
adoquery1.Next;
end;
依次类推,在combobox2的OnChange事件再写事件啊!
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('SELECt distinct XXX from CPU where brand='''+combobox1.text+'''');
adoquery1.Open;
combobox2.Items.Clear;
while not adoquery1.Eof do
begin
combobox2.Items.Add(adoquery1.fieldbyname('XXX').AsString);
adoquery1.Next;
end;
依次类推,在combobox2的OnChange事件再写事件啊!
全部回答
- 1楼网友:修女的自白
- 2021-04-06 06:42
1.你可以用一个 table 控件 将你要分级的表全查询出来
2.用循环将第一个combobox用你想做第一级的字段名填充
3.在第一个combobox的onchange事件中 根据第一个combobox选择的内容 利用循环将第2个combobox用table中对应字段的所有行的值来填充
4.类推
不一定非要用table,比如涉及到好几张表时 可以用 query控件每次都查询
例如 第一个选择 辽宁 第2个 列出 沈阳\大连\鞍山…
第2个 选择 沈阳 第3个 列出 和平、大东、铁西、沈河…
………………………………………………………………
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯