Со всеми установленными вами ограничениями ... Нет
Мой совет - кодировать событие BeforePost только один раз и связывать все таблицы с одним и тем же событием beforepost.
В объекте инспектор
Table1.BeforePost:= TrimFieldsBeforePost;
Table2.BeforePost:= TrimFieldsBeforePost;
....
В вашем коде
procedure TMyForm.TrimFieldsBeforePost(DataSet: TDataSet);
var
i: integer;
begin
i:= 0;
while i < Dataset.Fields.Count do begin
if (Dataset.Fields[i].DataType in
[ftString, FtMemo, ftFixedChar, ftWideString,FtVariant, ftFixedWideChar, ftWideMemo]) then begin
Dataset.Fields[i].AsString:= Trim(Dataset.Fields[i].AsString);
end;
Inc(i);
end;
end;