テーブルの内容を他のテーブルに追加するには?

解決


りょう  2004-11-28 14:06:55  No: 11955  IP: 192.*.*.*

http://www.borland.co.jp/delphi/papers/ado/ado01.html
このページを参考にデータベースソフトを作成中ですが、mdbのあるテーブルから1つのレコードを選んで、その内容を他のテーブルに追加したいのですがどうすればよいのか分かりません。教えてください。
現在
ADOQuery
ADOConnection
ADODatasource
を使っています。

編集 削除
HOta  2004-11-28 15:41:20  No: 11956  IP: 192.*.*.*

単純に
ADOQuery1:追加元
ADOQuery2:追加先
とすると、
ADOQuery2.Append;
for I := 0 to ADOQuery1.FieldCount - 1 do
  ADOQuery2.Fields[I].value := 
     ADOQuery1.Fields[I].value;
ADOQuery2.Post;
です。

編集 削除
りょう  2004-11-28 20:30:50  No: 11957  IP: 192.*.*.*

早速やってみたところうまくいきました!HOtaさん、ありがとうございます。
もうひとつ質問ですが、テーブルのデータだけをすべて消去してオートナンバのフィールドもゼロからはじめるようにするにはどうしたらよいでしょうか?
ADOQuery1.DeleteRecords
でやってみたのですが、エラーが表示されます。方法が違うのでしょうか?

編集 削除
HOta  2004-11-29 08:24:46  No: 11958  IP: 192.*.*.*

ADOコンポーネントはADOにつないでいるので、
Accessの命令で動くのではありません。
あくまで、Delphi側からコントロールしているのです。
ADOQueryですから、SQL文もしくは、DataSetで操作します。
SQLで削除するなら、
Delete From テーブル名
ですね。
DataSetなら
while Not ADOQuery1.Eof do
  ADOQuery1.Delete;
でしょうか。
オートナンバを消すのは、Accessで行って下さい。

編集 削除
りょう  2004-11-29 15:03:21  No: 11959  IP: 192.*.*.*

while Not ADOQuery1.Eof do
  ADOQuery1.Delete;
でやってみたところうまくいきました。ありがとうございます。
Delete From テーブル名
だと、
現在のプロバイダは単一の実行から複数のRecordsetを返すことをサポートしていません
というエラーメッセージがでます。

編集 削除