注册 登录
编程论坛 Delphi论坛

没有取得满意的结果,原因不明,恳请指点。

BCLT_xj9605 发布于 2019-06-24 11:47, 2012 次点击
用DELPHI语句编写在ACCESS表中查找下达日期最近的井、测试日期日期最近的井及入库日期最近的井。只有下达日期最近的井查找结果符合,其他两个条件都没有达到目的,原因是什么,恳请指点:
procedure TForm2.GroupBox5Click(Sender: TObject);
Var
querystr:string;
begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  querystr:='select * from CYJ where 下达日期 in (select max(下达日期) from cyj where 下达日期)';
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add(querystr);
  //ADOQuery1.ExecSQL;
  ADOQuery1.Open;//显示在edit时用open
  //Edit6.Text:=adoquery1.FieldByName('井号').AsString; //第一种显示字段的方式
  Edit6.Text:=adoquery1.Fields[0].AsString;//第二种显示字段的方式
  Edit8.Text:=adoquery1.Fields[1].AsString;
  Edit9.Text:=adoquery1.Fields[2].AsString;
end;

procedure TForm2.GroupBox6Click(Sender: TObject);
Var
querystr:string;
begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  querystr:='select * from CYJ where 测试日期 in (select max(测试日期) from cyj where 测试日期)';
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add(querystr);
  //ADOQuery1.ExecSQL;
  ADOQuery1.Open;//显示在edit时用open
  //Edit6.Text:=adoquery1.FieldByName('井号').AsString; //第一种显示字段的方式
  Edit10.Text:=adoquery1.Fields[0].AsString;//第二种显示字段的方式
  Edit11.Text:=adoquery1.Fields[1].AsString;
  Edit12.Text:=adoquery1.Fields[2].AsString;
end;

procedure TForm2.GroupBox7Click(Sender: TObject);
Var
querystr:string;
begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  querystr:='select * from CYJ where 入库日期 in (select max(入库日期) from cyj where 入库日期)';
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add(querystr);
  //ADOQuery1.ExecSQL;
  ADOQuery1.Open;//显示在edit时用open
  //Edit6.Text:=adoquery1.FieldByName('井号').AsString; //第一种显示字段的方式
  Edit13.Text:=adoquery1.Fields[0].AsString;//第二种显示字段的方式
  Edit14.Text:=adoquery1.Fields[1].AsString;
  Edit15.Text:=adoquery1.Fields[2].AsString;
end;
2 回复
#2
BCLT_xj96052019-06-24 15:32
问题出在
Edit11.Text:=adoquery1.Fields[1].AsString;//显示第2个字段的内容,第2个字段是下达日期,
Edit14.Text:=adoquery1.Fields[1].AsString;//显示第2个字段的内容,第2个字段是下达日期,
测试日期在第4个字段,若显示测试日期,应改为Edit11.Text:=adoquery1.Fields[4].AsString;
入库日期在第9个字段,若显示入库日期,应改为Edit14.Text:=adoquery1.Fields[9].AsString;
问题已解决,将问题提示给初学者,让大家少走弯路。
#3
victor_yang2021-09-09 08:11
建议你用adoquery1.FieldbyName('字段名').asString这种写法比较清晰
1