判断EDIT中的值是否与TABLE某字段中的值相等(50分)

  • 主题发起人 主题发起人 hncxcj
  • 开始时间 开始时间
function Locate(const KeyFields: String; const KeyValues: Variant;
Options: TLocateOptions): Boolean;
用locate方法

 
with Table1 do

begin

FindField('CustNo').AsString := '1234';


end;
 
找到相同的值:
Table1.FindKey(ARRAYOFCONST((Edit1.Text)));
找到相同值的个数:
用Query,
Query1.Close;
Query1.SQL.Clear();
Query1.SQL.Add ( 'Select * from xxxx.dbf where name ='+ Edit1->Text);
Query1.Open();
Query1.RecordCount就是个数。
用Table也可以,加上Filter即可。不废话了
 
我认为判断的方法很多,除了上面提到的还有,就使用循环;
table.first;
while not table.eof() do
begin
if table.fieldbyname('fieldname').asstring=edit1.text then
break
else
table.next;
end;
if table.eof() then
showmessage('存在相同的值')
else
showmessage('没有相同的值');
 
Findkey,Gotokey也可吧。
 
locate最好!!最方便!!
 
如果table与数据感知控件相连的话:
var curpos:string
...
curpos:=table.bookmark
table.disablecontrols
if table.locate(...) then 有相关数据
table.bookmark:=curpos;
table.enablecontrols;
....
//
也可以设置filter属性,然后用findfirst来进行查找。
 
谢谢,WANGFEIL1234567,你的答案正是我所需要的,真的太谢谢了!
 
接受答案了.
 
后退
顶部