我想实现通过查询日期段,点击button,首先先显示第一个dbgrid的记录,然后再通过第一个dbgrid记录里面的某个Field的值的条件来把另一个表的与这个field关联的所有记录全部显示出来,这个我实现了,但是只显示一条记录,与field关联的有多条记录啊,代码给大家看下子:
try
procedure TForm71.SpeedButton1Click(Sender: TObject);
var
Str, SQLStr1: string;
i: integer;
begin
Str := '是';
try //(adoquery5和dbgrid1连接,adoquery8和dbgrid2连接)
with DataModule1.ADOQuery5 do
begin
DisableControls;
Close;
SQLStr1 := 'select * from Gathering_Bill where (AddTime >= '''+DateTimeToStr(DateTimePicker1.DateTime)+''')and(AddTime <= '''+DateTimeToStr(DateTimePicker2.DateTime)+''')and(Posted = '''+Str+''')';
SQL.Clear;
SQL.Add(SQLStr1);
Open;
if RecordCount > 0 then
begin
for i := 0 to RecordCount - 1 do
begin
try //DBGrid1.Fields[5].Text
with DataModule1.ADOQuery8 do
begin
DisableControls;
Close;
SQLStr1 := 'select * from Sell_Bill where Count_Numb = '''+DataModule1.ADOQuery5.FieldByName('BCount_Numb').AsString+'''';
SQL.Clear;
SQL.Add(SQLStr1);
open;
end;
finally
DataModule1.ADOQuery8.EnableControls;
//DataModule1.ADOQuery3.Close;
end;
end;
end;
end;
finally
DataModule1.ADOQuery5.EnableControls;
end;
try
procedure TForm71.SpeedButton1Click(Sender: TObject);
var
Str, SQLStr1: string;
i: integer;
begin
Str := '是';
try //(adoquery5和dbgrid1连接,adoquery8和dbgrid2连接)
with DataModule1.ADOQuery5 do
begin
DisableControls;
Close;
SQLStr1 := 'select * from Gathering_Bill where (AddTime >= '''+DateTimeToStr(DateTimePicker1.DateTime)+''')and(AddTime <= '''+DateTimeToStr(DateTimePicker2.DateTime)+''')and(Posted = '''+Str+''')';
SQL.Clear;
SQL.Add(SQLStr1);
Open;
if RecordCount > 0 then
begin
for i := 0 to RecordCount - 1 do
begin
try //DBGrid1.Fields[5].Text
with DataModule1.ADOQuery8 do
begin
DisableControls;
Close;
SQLStr1 := 'select * from Sell_Bill where Count_Numb = '''+DataModule1.ADOQuery5.FieldByName('BCount_Numb').AsString+'''';
SQL.Clear;
SQL.Add(SQLStr1);
open;
end;
finally
DataModule1.ADOQuery8.EnableControls;
//DataModule1.ADOQuery3.Close;
end;
end;
end;
end;
finally
DataModule1.ADOQuery5.EnableControls;
end;
解决方案 »
- 关于access的一个奇怪问题
- 请帮忙推荐一下最简单入门的DELPHI书籍
- 请教高人,这个表格里的金额列如何实现呢?
- dll包含一个窗体,窗体里面有一个ActiveX控件,其它窗体调用时为什么总说尚未CoInitialize啊?
- 快来帮帮我!这是怎么会事啊!在线等!
- 该死的arccos()函数,各位高手帮忙!
- ***Delphi解决精典的数据库问题,编程高手请进***
- 怎么判断一个字符串的最后一为是字母或数字???
- 怎样得到用shellexecute执行的文件句柄
- -=-=-=-=-现在拷贝一个数据表的全部记录,要用Gauge显示进度,怎么控制它的progress?-=-=-=-
- Python中的Unicode在Delphi如何还原成Gb2312?
- 如何获取网络上的某个文件的大小(不用控件,尽量底层,用API更好)?
www.2ccc.com有现成的例子!
for i := 0 to RecordCount - 1 do
begin
try //DBGrid1.Fields[5].Text
with DataModule1.ADOQuery8 do
begin
DisableControls;
Close;
SQLStr1 := 'select * from Sell_Bill where Count_Numb = '''+DataModule1.ADOQuery5.FieldByName('BCount_Numb').AsString+'''';
SQL.Clear;
SQL.Add(SQLStr1);
open;
end;
finally
DataModule1.ADOQuery8.EnableControls;
//DataModule1.ADOQuery3.Close;
end;
end;
这一段,不知道你要干什么?