高分求教 delphi ,我我用access建立一个数据库,用ADOQuery1连接,里面有两个DBLookupComboBox1控件

以下图是access数据表一部分
第一个DBLookupComboBox1控件连接数据库显示“地区名称”
的二个控件连接数据库显示在所选“地区名称”里所在的“燃料名称”然后进行选择
如何设置实现第二个控件的功能第二个控件
答的满意的追加30分

第1个回答  2012-02-07
放两个AdoQuery,命名为:Qry_DiQu和Qry_RanLiao,
放两个DataSource命名为: Ds_DiQu和Ds_RanLiao,其DataSet设置为Qry_DiQu和Qry_RanLiao。

然后,设置comBox1指向地区:
qry_DiQu.sql.text:='select * from DiQu';
qry_DiQu.open; //这就能显示的列表了

设置combox2指向燃料:
qry_RanLiao.sql.text:='select * from RanLiao where RanLiao.DiQu=:diQuID '; //注意这个参数:DiQuID,要在qry_DiQu里有同名字段,指地区的ID
qry_RanLiao.DataSource:=ds_DiQu; //从这里取参数
qry_RanLiao.open; //读取燃料了

------------------------我建议你用devExpress的Cx组件,cxImageCombobox--------------
with qry_DiQu do while not eof do with TCxImageComboboxItem(cbx_DiQu.properties.items.add) do begin
value:=fieldValues['地区编号'];
description:=fieldValues['地区名称'];
NEXT; //吓一跳记录
end;
//双击cbx_DiQy后,会自动生成一个事件:cbx_diQu.properties.onChange,写代码:
with qry_RanLiao do begin
close;
sql.text:='select * from ranLiao where 地区号='+quotedStr(cbx_DiQu.editValue); --地区编号,取燃料
open;
--画界面
cbx_ranliao.properties.items.clear;
while not eof do with TCxImageComboboxItem(cbx_ranliao.properties.items.add) do begin
value:=fieldValues['燃料ID'];
description:=fieldValues['燃料名称'];
next;
end;
end;

写的很仓促,大体是这个意思,有点小错误的话你自己理顺理顺把。
第2个回答  2012-02-09
我一般不用DBLookupComboBox来做,而是直接用两个ComboBox,在第一个ComboBox中加载地区名称的信息,然后在Change事件中,动态加载第二个ComboBox的数据(燃料名称)
向ComboBox中动态添加数据的方法比如:
ComboBox.Clear
while not ADOQuery1.Eof do
begin
ComboBox.Item.Add('');
ADOQuery1.Next;
end;追问

在?

本回答被提问者采纳
第3个回答  2012-02-06
在ADOQuery做过滤
当地区被选中时,按照选中的地区作为过滤条件,这样就只剩下与该地区对应的燃料了追问

发段代码 过来 谢谢了!!我要成品 事成后加30财富值

追答

ADOQuery.filter := ‘地区名称 = XXXXX';
ADOQuery.filted := true;
大概是这样,手边没有delphi

追问

我要成品

追答

手边没有delphi,要看具体代码的话,等明天下午才行,你你就照我写的加上去试试啊,在选择地区后加上上面两句代码,看效果

还有个方法,第二个用普通COMBOBOX,然后在选中地区时,给这个控件加上下拉选项;

求delphi与Access数据库连接的步骤
1,新建Project。2,在FORM中放入ADOConnection控件。3,双击ADOConnection控件,然后点击Build...按钮,在“提供者”页中选择“Microsoft Jet 4.0 OLE DB Provider”,然后点击“下一步”按钮,在“连接”页中选择要连接的Access数据库的路径和数据库的文件名.如果数据库没有密

delphi下使用ACCESS是如何进行搭建的
在Delphi下,使用数据感知控件进行感知。具体的方法如下:添加ADOConnection控件,设置ADOConnection控件的ConnecdtionString属性连接Access数据库,连接数据库的源选择“Microsoft Jet 4.0 OLE DB Provider”。且将其LoginPrompt属性设置为False。添加ADOQuery控件,将ADOQuery控件的ADOConnection属性设置为ADOConnec...

delphi中显示access数据库表怎么实现
1. 在Delphi设计界面中,首先添加一个ADOQuery控件,然后设置其ConnectionString属性,格式为“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=你的数据库文件路径.accdb;Persist Security Info=False”。如果对ConnectionString的设置不熟悉,建议先查阅相关书籍或资料,进行简单的练习。2. 添加一个DataSource...

DELPHI操作access数据库
最好用ado来操作,先拖几个控件adoconnection,adoquery,datasource,然后把adoconnection连到你的access数据库,设置一个按钮做为保存,点击按钮后操作如下 adoquery1.close;adoquery1.sql.clear;adoquery1.sql.add('insert into 你的表 (姓名,职业,年龄) values (:edit1.text,:edit2.text,:edit3....

求delphi连接数据库进行简单的 插入,删除,修改,查询。
新建一个数据库:如用ACCESS建一个data.mdb(建好结构并填写几个测试数据 ),放到程序目录下,窗体中再放一个(ADO下的)ADOQuery1、(data access下的)DataSource1、(data control)下的DBGrid1和DBNavigator1,并设置:1、点ADOQuery1的connectionstring右边“...”--build...--选提供程序下的...

delphi和access连接的方式
Persist Security Info=False;Jet OLEDB:Database Password=密码';Adoconnection1.Open;\/\/然后要链接数据库数据地方设置一个adoquery控件,其属性conection里选择Adoconnection1,然后通过adoquery1链接数据库添加一个ADOConnection控件一个ADOQuery控件一个DataSource控件在ADOConnection的ConnectString属性中设置数据...

在DELPHI中如何在dbgrid 显示查询数据
在表单上面创建一个ADOConnection用于连接ACCESS 一个ADOQUERY用于根据EDIT输入的内容查询ACCESS的内容.一个DATASOURCE用于连接DBGRID和ADOQUERY,然后在BUTTON中写如相关代码 具体参见SQL语法 简单的查询方法 buttonclick begin adoquery1.close;adoquery1.sql.clear;adoquery1.sql.add('select * from 表名'...

delphi 中用adoquery连dbedit问题
DBedit是数据库的感知控件,设定DataSource属性,和DataField(数据字段),就可以直接连接到数据库了.既然你不设属性,那就用Edit db

dellphi里ADO怎样连接paradox数据库,希望朋友能提供个完整可运行的实例...
创建项目:打开Delphi,创建一个新的VCL Forms Application项目。添加ADO组件:在组件面板中找到Data Access页,将TADOConnection、TADOQuery和TDataSource组件拖放到表单上。配置ADOConnection:选择TADOConnection组件,在属性窗口中找到ConnectionString属性。设置ConnectionString为连接Paradox数据库所需的字符串。由于...

DELPHI ADOQUERY连接ACCESS,查询记录总数问题
SQL.Add('select * from DIPBCT where 日期=date()这两句的原因 ACCESS 数据库对日期的查找应该加 而且 DateTimeToStr(Date()的格式与 where 日期=date() 的日期格式不同。第一句换成 FieldByName('日期').AsString := formatdatetime(‘yyyy-mm-dd’,Date())好一些,比较也采用 where 日期=...

相似回答