关于数据库查询的问题,请高手帮忙(50分)

  • 主题发起人 主题发起人 housiba
  • 开始时间 开始时间
H

housiba

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用 Access + ADOQuery 建立了一个桌面单表数据库,有 8 个Fields,为 country custom f3 f4 f5 f6 f7 f8, 分别用 8 个 DBComboBox 列出其中数据,现在我想在country 列表中选择其中一项,在 custom 列表中列出这个国家的所有 custom 。其它同理,用 f3 找 f4, 用 f5 找 f6 ... ...
初学乍练,请大家帮帮忙 :)
 
那你还是建立一个字典吧,不麻烦的,就像邮政编码那样进行编号.
比如01代表北京0101代表海淀,0102代表西城...
以此类推,每次查询的时候你就匹配前几个字符就是了
比如查询北京的,你就加上like '00%'这样的限制就是了.
 
在界面上放8个TDBComboBox ,每个对应一个字段.打开数据集就自动加载好了.
 
TDBComboBox 已经放上去了。。。我想在country 列表中选择其中一项,就在 custom 列表中列出这个国家的所有 custom,其余的 custom 都滤掉。
 
是否可以使用ADOTable连接数据表,ADOTable 有个属性Filter 可以过滤 你可以试一试
 
二楼的大哥,我不是很了解如何建立数据字典,是用 Access 建吗?
 
在COMBOBOX的ONCLOSEUP事件里进行处理
比如在F3的ONCLOSEUP事件里写填充F4内容的程序,具体填充方法可以用重新查询或Filter
 
TDBComboBox 没有 ONCLOSEUP 这个事件呀 :'(
 
country的Combobox的OnChange事件中,根据Country添加custom的Combobox中的数据,后面的同理。
 
procedure TForm1.cb1Change(Sender: TObject);
var
str : string;
begin
str := Trim(cb1.Text);
with aq1 do
begin
Close;
SQL.Clear;
SQL.Add('Select * from PI');
SQL.Add('Where country = :country');
Parameters.ParamByName('country').value := str;
Open;
end;
end;
我加入以上语句后就没法查其它的了:'(
 
增加id为标识,,tdbcombobox的onchange 事件里面dataset为动态加载
 
楼上的大哥,你能说的再仔细点么?
 
建立一个国家特征编码表,比较符合设计原则,也便于以后语言选择
 
在Click事件中用filter,OK!
 
谢谢大家的帮忙,我把 TDBComboBox 换成 ComboBox 问题就解决了 :)
 

Similar threads

S
回复
0
查看
758
SUNSTONE的Delphi笔记
S
S
回复
0
查看
751
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部