こんにちは、私は関数に与えられた 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行がコメントアウトされている場合、関数はエラーを出しません)
これを機能させる方法がわかりません。助けていただければ幸いです