查询的结果显示问题!

guangxiluye 2002-06-03 09:31:17
请问,怎样把一个窗体A的查询结果显示在窗体B上?窗体A只有输入查询的条件,一个Edit1.text、Button,而窗体B中有一个ADOTable1、DataSource、ADOQuery1、ADOQuery2、DBGrid1,我想把A最后查询到的结果在B中的DBGrid1中显示!!
...全文
50 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
guangxiluye 2002-06-03
  • 打赏
  • 举报
回复
好…我检查…
go_my_sky 2002-06-03
  • 打赏
  • 举报
回复
a uses b ,b uses a
光明山人 2002-06-03
  • 打赏
  • 举报
回复
错误信息是指,你的数据连接循环了,比如有可能已经存在:MDIChild_luru.ADOQuery1.DataSource = MDIChild_luru.DataSource1
而你现在
MDIChild_luru.DBGrid1.DataSource.DataSet:=MDIChild_luru.ADOQuery1
相当于
MDIChild_luru.DataSource1.DataSet = MDIChild_luru.ADOQuery1 (因为MDIChild_luru.DBGrid1.DataSource:=MDIChild_luru.DataSource1)
这样就来回指了。

检查一下。
zhuzhuer 2002-06-03
  • 打赏
  • 举报
回复
可以把A的查询结果保存到表中,然后在B中调用到这个表不就可以了么
guangxiluye 2002-06-03
  • 打赏
  • 举报
回复
我的代码如下:
procedure TChaXun.Button1Click(Sender: TObject);
begin

With MDIChild_luru.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select 姓名 from pp where 姓名 like ''%+4+%''');
Open;
end;
MDIChild_luru.DBGrid1.DataSource:=MDIChild_luru.DataSource1;
MDIChild_luru.DBGrid1.DataSource.DataSet:=MDIChild_luru.ADOQuery1;
end;
运行最后出现:"DataSource:circular datalinks are not allowed"的错误!
请帮我看看为什么会出现这种问题。谢谢!
xfei 2002-06-03
  • 打赏
  • 举报
回复
TFormA=class(TForm)
private
_str:string;
published
property SQLString:string read _str;
end;

procedure TFormA.btnSearch(Sender:TObject);
begin
_str:= edit1.text+......... //获得查询字符串
self.close;
end;

/////////////////////////////////////////////
FormB

procedure FormB.btnSearch(Sender:TObject)
var
frmQuery:TFormA;
str:string;
begin
frmQuery := TFormA.create(nil);
try
frmQuery.showmodal;
str := frmQuery.SQLString;

Query1.add(str);
Query1.Open;
finally
frmQuery.free;
end;
end;
guangxiluye 2002-06-03
  • 打赏
  • 举报
回复
是啊,我是这样写的,可是A中的查询结果根本不能在B中的DBGrid显示出来,B中的DBGrid1原来显示的是什么样就是什么样,可是我想得到是仅A中的查询结果!!
ihihonline 2002-06-03
  • 打赏
  • 举报
回复
嘻嘻,最后用DataModule
对其中的TQuery or TADOQuery进行操作;
就可以啦;
DBGird.DataSource := ...
DBGrid.DataSource.DataSet = 上边的那个 ADOQuery`
netlib 2002-06-03
  • 打赏
  • 举报
回复
在a的button的onclick中写
With b.adoquery1 do
begin
close;
sql.Clear;
sql.add('select * from m111 where name = '''+edit1.Text+'''');
Open;
end;

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧