相信在这的人都可以解答。 (10分)

  • 主题发起人 主题发起人 新手入门
  • 开始时间 开始时间

新手入门

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button1Click(Sender: TObject);

begin

if (edit1.text='') or (edit2.text='') then

begin

messagedlg('字段不能为空', mtWarning, [mbOk], 0) ;
edit1.setfocus;
exit;
end;

table1.active:=true;
table1.insert;
table1.fieldbyname('bm').asstring:=edit1.text;
table1.fieldbyname('xm').asstring:=edit2.text;
table1.fieldbyname('rq').asdatetime:=data.date;

begin

table1.post;
edit1.text:='';
edit2.text:='';
showmessage('添加成功!!');
edit1.setfocus;
end;
end;

如何在输入EDIT1.TEXT(BM)时判断table1是否存在该编码?如存在则在edit1.text和
edit2.text显示编码和姓名。否则光标跳到edit2.text处程序继续执行下去。
最好有代码。呵呵,小弟实在菜得不得了。望高手解答。
 
在Edit1的onchange事件里查找并判断。
 
//edit1.onkeydown
if key <> 13 then exit;
if trim(edit1.text) = '' then
begin
messagedlg('字段不能为空', mtWarning, [mbOk], 0) ;
edit1.setfocus;
exit;
end;
with table1 do
begin
active := true;
if locate('bm', edit1.text, []) then
begin
edit2.text := fieldbyname('xm').asstring;//[]中的参数自己看帮助
edit1.setfocus;
end
else begin
append;
fieldbyname('bm').asstring:=edit1.text;
fieldbyname('rq').asdatetime:=data.date;
edit2.setfocus;
end;
end;
//edit2.onkeydown
if key <> 13 then exit;
if tirm(edit2.text) = '' then
begin
messagedlg('字段不能为空', mtWarning, [mbOk], 0) ;
edit2.setfocus;
exit;
end;
table1.fieldbyname('xm').asstring := edit2.text:
table1.post;
edit1.text:='';
edit2.text:='';
showmessage('添加成功!!');
edit1.setfocus;
 
在edit1的onkeydown里面写
if key=13 then
begin
if table1.FieldByName('bm').Value=edit1.Text then
edit2.text:=table1.FieldbyName('xm').AsString
else
edit2.SetFocus;
end;
 
应该是 key=#13 吧!
 
to 快乐的蚂蚁
首先要谢谢你。你的代码我试过了。但是只在在记录指向该记录时edit2.text才显示
如:当记录指针指向第二条记录时(编码为2),在edit1.text输入2时edit2.text才显
示xm.重新输入其他编码就不再起作用了。
 
哈哈,你是很菜,快乐的蚂蚁的代码只有当edit1中输入与table的当前记录吻合时才会在edit2中出现表中原有的数据!
 
to dlnew:
但我要求是进行全库检索。并不是对当前记录。
 
增加一个QUERY组建
在BUTTON1CLICK事件中加入:
var sql:string;
...
sql:='select * from TABLENAME where bm='+Edit1.text;
query1.close;
query1.clear;
prepare;
query1.sql.add(sql);
query1.open;
if query1.recno>0 then messagebox('已经存在该记录');
上面是对整个表进行搜索是否已有该记录,其他的语句你自己写把
 
好吧,我把答案再说清楚些:
在edit1的onkeydown事件中,写入我上面的回答中//edit1.onkeydown到//edit2.onkeydown中的代码,
在edit2的onkeydown事件中,写入//edit2.onkeydown后面的代码
注意,上次的回答我已经改过了!
 
各位大哥,谢啦。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
911
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
778
import
I
后退
顶部