当然能啊。sql语句支持多表查询的。比如你要显示两表中的所有数据可以这样:select * from table1,table2 where table1.姓名=table2.姓名
可以,不过烦琐很多,你要是不写语句的话,放两个adoconnection和adoquery,在加一个DATASOURCE,把其中一个作为查询条件,另一个ADOQUERY里的SQL这样写 SELECT * FROM TABLE WHERE 字段=:字段 注意的是这只能是显示一个表的,不过是取另一个数据库中有关联的数据但显示还是显示一个数据库中的表,如果是两个都显示,你就要用三个ADOQUERY,其他两个专门取数据,在用计算填充第三个表,
SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="D:\delphi实验\Createkey\data\keydata.mdb";User ID=Admin;Password=')...keydb KEYDB是KEYDATA.MDB中的表 你可以照着上面写就是了
SELECT a.*,b.* FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="D:\delphi实验\Createkey\data\keydata.mdb";User ID=Admin;Password=')...keydb b, OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="D:\delphi实验\Createkey\data\keydb.mdb";User ID=Admin;Password=')...keytb a where a.date=b.date 换成你的表就可以了
SELECT * FROM TABLE WHERE 字段=:字段
注意的是这只能是显示一个表的,不过是取另一个数据库中有关联的数据但显示还是显示一个数据库中的表,如果是两个都显示,你就要用三个ADOQUERY,其他两个专门取数据,在用计算填充第三个表,
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="D:\delphi实验\Createkey\data\keydata.mdb";User ID=Admin;Password=')...keydb
KEYDB是KEYDATA.MDB中的表
你可以照着上面写就是了
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="D:\delphi实验\Createkey\data\keydata.mdb";User ID=Admin;Password=')...keydb b,
OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="D:\delphi实验\Createkey\data\keydb.mdb";User ID=Admin;Password=')...keytb a
where a.date=b.date
换成你的表就可以了
非常感谢!可第一次使用还是有些不大明白,你看看我下面写的有什么问题?谢了!with DataModule1.ADOQuery do
begin
SQL.Clear;
SQL.Add('Select products.商品名称,products.商品别名,products.生产批号,products.商品规格,products.供应商1,products.生产厂商,products.批准文号,products.有效期,products.商品分类,products.计量单位,');
SQL.Add('checkresult.* From OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'', ''Data Source="aa.mdb";User ID=Admin;Password='')...keydb products,');
SQL.Add('OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',''Data Source="db1.mdb";User ID=Admin;Password='')...keydb checkresult');
SQL.Add('where products.编号=checkresult.货品编号');
Open;
end
SELECT a.*,b.*
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="D:\delphi实验\Createkey\data\keydata.mdb";User ID=Admin;Password=')...keydb b,
OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="D:\delphi实验\Createkey\data\keydb.mdb";User ID=Admin;Password=')...keytb a
where a.date=b.date
这是我有SQL查询分析器里的语句,要在DELPHI中用你得把这条语句转化成DELPHI能识别语句
注意‘的使用
这条语句里的keydb是数据库keydata.mdb中的表
keytb是数据库keydb.mdb中的表
你把数据库路径和表换成你的就可以了,换后你可以在试试
多谢!可还是有问题啊,下面哪错了?谢了!
with Query1 do //DataModule1.ADOQuery
begin
//Connection := nil;
SQL.Clear;
SQL.Add('Select a.商品名称,a.商品别名,a.生产批号,a.商品规格,a.供应商1,a.生产厂商,a.批准文号,a.有效期,a.商品分类,a.计量单位,');
SQL.Add('b.* From OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',''Data Source="aa";User ID=Admin;Password='')...products a,');
SQL.Add('OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',''Data Source="db1.mdb";User ID=Admin;Password='')...checkresult b');
SQL.Add('where a.编号=b.货品编号');
Open;
end;
我从ADOQuery换成Query了,因为ADOQuery有个Connection 。而Query我全用的是默认设置抱错为“From 子句语法错误”
showmessage(sql.text);
Open;
如果显示为下面语句就对了!!
Select a.商品名称,a.商品别名,a.生产批号,a.商品规格,a.供应商1,a.生产厂商,a.批准文号,a.有效期,a.商品分类,a.计量单位,b.* From OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="aa";User ID=Admin;Password=')...products a,OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="db1.mdb";User ID=Admin;Password=')...checkresult b where a.编号=b.货品编号
另外你的数据库路径是不是对了!!你这里面的aa,和db1.mdb是不是那两个数据库