以下是程序代码:
TblEmployee.Locate('Num',TblManagerPre.FieldByName('Num').AsString,[loPartialKey]);
If TblEmployee.Found then
Begin
TblEmployee.Edit;
TblEmployee.FieldByName('Times').AsInteger:=TblEmployee.FieldByName('Times').AsInteger + 1;
TblEmployee.Post
end
else
Begin
TblEmployee.Append;
TblEmployee.FieldByName('Num').AsString:=TblManagerPre.FieldByName('Num').AsString;
TblEmployee.FieldByName('Times').AsInteger:=TblEmployee.FieldByName('Times').AsInteger + 1;
TblEmployee.Post;
end;TblEmployee表中明明有符合条件的记录,为何条件语句执行的却是else以后的语句?真不明白,特来请教。
TblEmployee.Locate('Num',TblManagerPre.FieldByName('Num').AsString,[loPartialKey]);
If TblEmployee.Found then
Begin
TblEmployee.Edit;
TblEmployee.FieldByName('Times').AsInteger:=TblEmployee.FieldByName('Times').AsInteger + 1;
TblEmployee.Post
end
else
Begin
TblEmployee.Append;
TblEmployee.FieldByName('Num').AsString:=TblManagerPre.FieldByName('Num').AsString;
TblEmployee.FieldByName('Times').AsInteger:=TblEmployee.FieldByName('Times').AsInteger + 1;
TblEmployee.Post;
end;TblEmployee表中明明有符合条件的记录,为何条件语句执行的却是else以后的语句?真不明白,特来请教。
found 對locate 無效
使用Locate以后,如何判断是否找到符合条件的记录呢?
看幫助嘛
If TblEmployee.Found then直接改为
ifTblEmployee.Locate('Num',TblManagerPre.FieldByName('Num').AsString,[loPartialKey ]) thenLocate不成功时本身会返回false成功则返回true
在locate前面加一句:tblEmployee.first;