我现在有
表A:
ID  领料人  总金额 
1   王五    50
2   张三    50
表B:
ID 编号 数量 价格 领料人
1  001   1     50  张三
2  002   1     50  王五我现在想当我选中表A的第一列即ID为1那一行时。在表B中只显示领料人为王五的表格数据这两个表都在同一窗体中。我该怎么实现呢望达人赐教呀

解决方案 »

  1.   

    A:
    SELECT TOP 1 A.*, B.* FROM A, B WHERE A.领料人 = B.领料人
      

  2.   

    SELECT TOP 1 A.*, B.* FROM A, B WHERE A.领料人 = B.领料人
      

  3.   

    那个表你应该是这样的建可能就好多了ID 编号 数量 价格 userid
    1  001   1     50  张三
    2  002   1     50  王五把userid与表A的ID关联
      

  4.   

    SELECT TOP 1 A.*, B.* FROM A, B WHERE A.领料人 = B.领料人
      

  5.   

    可能我说的不清楚。我把我的意思描述更详细一下吧比如说两张DBGRID表在一个FORM中。那么我现在要做的是:
    1。在表A中(主表)。显示的是一个如上面列出的A的内容
    2。在表B中(从表)。当我在A单中选中“王五“这一条数据时,在B表中显示所有领料人为“王五”的数据。具体的代码和表格应该怎么写和设置呢。望各位大虾游过时留下痕迹呀~~不甚感激~~^_^
      

  6.   

    简单
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB, Grids, DBGrids;type
      TForm1 = class(TForm)
        DBGrid1: TDBGrid;
        DBGrid2: TDBGrid;
        ADOTable1: TADOTable;
        ADOTable2: TADOTable;
        DataSource1: TDataSource;
        DataSource2: TDataSource;
        ADOTable2bill_id: TStringField;
        ADOTable2bill_date: TDateTimeField;
        ADOTable2create_date: TDateTimeField;
        ADOTable2oper_name: TStringField;
        ADOTable2cust_id: TStringField;
        ADOTable2cust_name: TStringField;
        ADOTable2contact_name: TStringField;
        ADOTable2re: TMemoField;
        ADOTable2current_type_id: TIntegerField;
        ADOTable2others: TStringField;
        ADOTable1bill_id: TStringField;
        ADOTable1goods_id: TStringField;
        ADOTable1goods_type: TIntegerField;
        ADOTable1unit: TStringField;
        ADOTable1number: TBCDField;
        ADOTable1price: TBCDField;
        ADOTable1money: TBCDField;
        ADOTable1re: TMemoField;
        procedure DBGrid1Enter(Sender: TObject);
        procedure Form1.FormShow(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.DBGrid1Enter(Sender: TObject);
    var
    GetName:string;
    begin
         with adotable2 do
         begin
              GetName:=adotable1.FieldByName('领料人').AsString;
              adotable2.Filtered := false;
              adotable2.Filter := format('领料人 = ''%S''',[GetName]);
              adotable2.Filtered := true;
         end;
    end;procedure TForm1.FormShow(Sender: TObject);
    begin
         adotable1.close;
         adotable2.close;
         adotable1.Open;
         adotable2.Open;
    end;end.
      

  7.   

    上面修改如下
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB, Grids, DBGrids;type
      TForm1 = class(TForm)
        DBGrid1: TDBGrid;
        DBGrid2: TDBGrid;
        ADOTable1: TADOTable;
        ADOTable2: TADOTable;
        DataSource1: TDataSource;
        DataSource2: TDataSource;
        ADOTable2bill_id: TStringField;
        ADOTable2bill_date: TDateTimeField;
        ADOTable2create_date: TDateTimeField;
        ADOTable2oper_name: TStringField;
        ADOTable2cust_id: TStringField;
        ADOTable2cust_name: TStringField;
        ADOTable2contact_name: TStringField;
        ADOTable2re: TMemoField;
        ADOTable2current_type_id: TIntegerField;
        ADOTable2others: TStringField;
        ADOTable1bill_id: TStringField;
        ADOTable1goods_id: TStringField;
        ADOTable1goods_type: TIntegerField;
        ADOTable1unit: TStringField;
        ADOTable1number: TBCDField;
        ADOTable1price: TBCDField;
        ADOTable1money: TBCDField;
        ADOTable1re: TMemoField;
        procedure FormShow(Sender: TObject);
        procedure DBGrid1CellClick(Column: TColumn);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormShow(Sender: TObject);
    begin
         adotable1.close;
         adotable2.close;
         adotable1.Open;
         adotable2.Open;
    end;procedure TForm1.DBGrid1CellClick(Column: TColumn);
    var
    GetName:string;
    begin
         with adotable2 do
         begin
              GetName:=adotable1.FieldByName('bill_id').AsString;
              adotable2.Filtered := false;
              adotable2.Filter := format('bill_id = ''%S''',[GetName]);
              adotable2.Filtered := true;
         end;
    end;end.