注册 登录
编程论坛 Delphi论坛

Ttable控件

lin_er_h 发布于 2007-04-13 10:31, 1458 次点击
请问,在Ttable控件里为什么不可以用if(edit3.Text=fieldbyname('账号').AsString) then的这种形式阿?好像根本都没有读这条语句!
请多指教~~
9 回复
#2
sgliuxiu2007-04-13 11:14
if (edit3.Text=tabel1.fieldbyname('账号').AsString) then
有没有执行这句,你得看你程序的流程是怎么走的.不是所有语句都执行的.
#3
lin_er_h2007-04-13 11:25
不是阿 该走这条的时候它也没走啊
#4
sgliuxiu2007-04-13 11:38
你没看我已经给你修改了一下吗?该走的时候没走,你自己检查一下你的流程哦
#5
lin_er_h2007-04-13 21:09

也就是说在程序里用tabel1.fieldbyname('账号').AsString的语句是没有错吧?可运行起来却没有体现,会不会是别的什么地方没有设置呢?呵呵 麻烦版主了

#6
nongen2007-04-13 21:26
你把代码弄上来。
#7
lin_er_h2007-04-13 22:08

procedure TForm1.Button1Click(Sender: TObject);
begin
if(trim(edit1.Text)<>'') and (trim(edit2.Text)<>'') and (trim(edit3.Text)<>'') then
begin
with form1.table1 do
begin
first;
while not eof do
begin
if(edit3.Text=fieldbyname('账号').AsString) then
showmessage('该账号已经存在!')
else
begin
edit;
append;
fieldbyname('账号').AsString:=edit3.Text;
fieldbyname('姓名').AsString:=edit1.Text;
fieldbyname('密码').AsString:=edit2.Text;
post;
Refresh;
showmessage('注册成功!');
break;
end;
end;
end;
ss:=form1.Table1.FieldByName('学号').AsString;
form3.Table1.Edit;
form3.Table1.FieldByName('学号').AsString:=ss;
form3.table1.Post;
form4.Table1.Edit;
form4.Table1.FieldByName('学号').AsString:=ss;
form4.table1.Post;
form5.Table1.Edit;
form5.Table1.FieldByName('学号').asstring:=ss;
form5.table1.Post;
form6.Table1.Edit;
form6.Table1.FieldByName('学号').asstring:=ss;
form6.table1.Post;

end
else
showmessage('信息填写的不完整!');

edit3.Text:='';
edit1.Text:='';
edit2.Text:='';
end;

#8
lin_er_h2007-04-13 22:09

不好意思 还落了一句 var ss:string;

#9
nongen2007-04-13 23:17
while not eof do
begin
if(edit3.Text=fieldbyname('账号').AsString) then
showmessage('该账号已经存在!')
else
begin
edit;
append;
fieldbyname('账号').AsString:=edit3.Text;
fieldbyname('姓名').AsString:=edit1.Text;
fieldbyname('密码').AsString:=edit2.Text;
post;
Refresh;
showmessage('注册成功!');
break;
end;
next;//若第一个不同,那你难道一直比较第一个?
end;
况这段本身就不严谨
var f:boolean;
f:=false;
whil not table1.eof and not f do//当表没结束或者没找到相同的时候循环
begin
if fieldbyname('账号').asstring=edit3.text then
f:=true;//相同记录了,那就赋真值,退出循环
next;//逐条对比
end;
if not f then
begin
//append 进 table1中。

end
else
//message 错误重复

[此贴子已经被作者于2007-4-13 23:20:43编辑过]

#10
lin_er_h2007-04-14 11:10

哦~~~原来我的错误这么大啊~~~~呵呵 非常感谢!!刚刚我试过了,好使了!

1