我想实现通过查询日期段,点击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;

解决方案 »

  1.   

    如果你要主细表结构,自己查查有关主细表结构的例子,没有这么麻烦!而且也完全不对!
    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;
    这一段,不知道你要干什么?