Windows10、DelphiXe8、Accessで開発しています。下記のサンプルでFDTable1のフィールドとFDTable2のフィールドが同一だったとしてレコードを同じ内容で登録する場合、for文を使いテーブルのフィールド数分登録しています。下記の様なfor文を使わないで一括で登録する方法がありましたらお教え下さい。宜しくお願いします。
var
i :Integer;
begin
FDTable1.Open; FDTable2.Open;
while not FDTable1.Eof do
begin
FDTable2.Append;
for i :=0 to FDTable1.FieldCount -1 do
begin
FDTable2.Fields[i].AsString :=FDTable1.Fields[i].AsString;
end;
FDTable2.Post;
FDTable1.Next;
end;
FDTable1.Close; FDTable1.Close;
end;
Accessで使えるかわかりませんが、Oracleだと、
表をSELECTして別の表へINSERTする(INSERT 〜 SELECT)
http://www.projectgroup.info/tips/Oracle/SQL/SQL000004.html
のような方法とか、あるみたいです。
INSERT INTO ステートメント (Microsoft Access SQL)
https://msdn.microsoft.com/ja-jp/library/office/ff834799.aspx
とか、あるので、SQLを使えば、Accessでもできそうな気がしますね。
TFDTableではなく、TFDQueryを使って、試してみるのは、いかがですか?
igyさん、有難う御座います。出来ました!
ツイート | ![]() |