dbgrid中设置了一个检查,即当前单元格有值时,就提醒,但到第二行是空值时,它也提醒,怎么解决?

mosony 2015-08-04 10:46:59
我想要的意思,当选“制作此份MI”时,目前状态中是空的时候,目前状态就写入"MI制作中",而当目前状态中有值时,就提醒“此MI已有人选择制作,请重新选择其它料号!”,而选第二行,目前状态是空的时候,它也提醒。 不知是哪里出了问题,请高手指点。



代码见下:
Query := TADOQuery.Create(nil);
Query.Connection := dmWarehouse.ACWarehouse ;
Query.SQL.Add('select * from pro_zhizuomx where 目前状态=目前状态');
query.Open;
s:=query.fieldbyname('目前状态').asstring;

if s = '' then
begin
adotable1.edit;
adotable1.FieldByName('MI制作人').Value:= pn;
adotable1.Post;
Query.SQL.Add('select * from pro_zhizuomx where 目前状态=目前状态');
adotable1.edit;
adotable1.FieldByName('目前状态').Value:= 'MI制作中';
adotable1.Post;
end else
MessageDlg('此MI已有人选择制作,请重新选择其它料号!',mtError,[mbok],0);
Exit;
end;
...全文
130 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyhoo163 2015-08-05
  • 打赏
  • 举报
回复
你可以取消这段代码,最好设置一个demo,让信息加入,给用户一个提示。
mosony 2015-08-05
  • 打赏
  • 举报
回复
用大侠那个是可以,但键完之后,如果已经有的,MessageDlg('此MI已有人选择制作,请重新选择其它料号!',mtError,[mbok],0); 这个提示会提示三次,才完结。 怎么样可以让它改为一次提醒?
lyhoo163 2015-08-05
  • 打赏
  • 举报
回复
用 S:=FieldbyName('厂内料号')+'此MI已有人选择制作,请重新选择其它料号!'; Memo1.Lines.Add(S); 代替 MessageDlg('此MI已有人选择制作,请重新选择其它料号!',mtError,[mbok],0); 或用 S:=FieldbyName('厂内料号')+'此MI已有人选择制作,请重新选择其它料号!'; statusbar1.Panels[0].text:=S; 代替 MessageDlg('此MI已有人选择制作,请重新选择其它料号!',mtError,[mbok],0);
mosony 2015-08-05
  • 打赏
  • 举报
回复
刚在学习中……,麻烦请明示。
lyhoo163 2015-08-04
  • 打赏
  • 举报
回复

begin
  Query := TADOQuery.Create(nil);
  Query.Connection := dmWarehouse.ACWarehouse ;
  Query.SQL.Add('select * from pro_zhizuomx where 目前状态=目前状态');
  query.Open;
  with query do
  begin
    First;
    while Not Eof do
    begin
      s:=Query.fieldbyname('目前状态').asString;
      if s = '' then
      begin
        Edit;
        FieldByName('MI制作人').Value:= pn;
        Post;
      end
      else begin
        MessageDlg('此MI已有人选择制作,请重新选择其它料号!',mtError,[mbok],0);
      end;
      Next;
    end;
  end;
end; 
上述代码,试试。

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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