0

こんにちは、私は関数に与えられた ID をチェックし、iID見つかったメンバーの名前を出力する必要がある関数を作成しました。それ以外の場合は、見つからないことを出力する必要があります

この関数が呼び出されると別のテーブルがアクティブになるため、Members(ID を検索するために) テーブルを変更してから、後で再度戻す必要があります (複数のテーブルがあります)。

function fCheckID(iID:integer):String;
var sTable:string;
begin
sTable:=datamoduleX.tableX.TableName;
datamoduleX.tableX.TableName:='Members';
 if datamoduleX.tableX.Locate('RefNo',iID,[]) then
  result:=dmRooiX.tblRooiX['Name']+' '+datamoduleX.tableX['Surname']
  else
  result:='ID: '+inttostr(iID)+' does not exist';
datamoduleX.tableX.TableName:=sTable;
end;

しかし問題は、この関数を呼び出すたびに、「開いているデータセットでこの操作を実行できません」というエラーが表示されることです。

関数を実行する前にデータセットを閉じると、「閉じたデータセットでこの操作を実行できません」というメッセージが表示されます

テーブル名にアクセスしたり変更しようとするとエラーが発生することはわかっています(これらの3行がコメントアウトされている場合、関数はエラーを出しません)

これを機能させる方法がわかりません。助けていただければ幸いです

4

1 に答える 1