抽出したデータを別のテーブルへ保存するには?

解決


稲兎  2004-08-26 14:03:52  No: 115886  IP: [192.*.*.*]

VB6を使用しております。

Aテーブルから条件に合うデータを抽出しました。

Aテーブル(抽出後)
社名   コード   品名    数量
A社   001   いちご  6個
A社   002   みかん  1個
A社   003   りんご  3個

このレコードをBテーブルへと登録したいのですが、どう処理すれば
良いのか分かりません。

Bテーブル
社名   コード   品名    数量  No
A社   001   いちご  6個   1
A社   002   みかん  1個   2
A社   003   りんご  3個   3

また、Noフィールドには連番を登録したいと思っています。
Do Loopを使用すれば良いのかと思いやってみたのですが・・・
最初のレコードを繰り返し登録するだけで、次のレコードを登録する
事が出来ませんでした。

良きアドバイスがありましたら、宜しくお願い致します。

編集 削除
nanashi  2004-08-26 14:27:47  No: 115887  IP: [192.*.*.*]

DBは何で、何を使ってデータベースに接続してるんでしょうか?
仮にMDB、ADOとして話を進めます。

> このレコードをBテーブルへと登録したいのですが、どう処理すれば
> 良いのか分かりません。

Bテーブルのレコードセットを用意してAddNewとか、
Insertクエリを発行するとか。

> 最初のレコードを繰り返し登録するだけで、次のレコードを登録する
> 事が出来ませんでした。

MoveNextしてますか?

> また、Noフィールドには連番を登録したいと思っています。

フィールドをオートナンバーにするか、
Maxで最大値を取り、インクリメントしてくか。

編集 削除
ABC  2004-08-26 14:28:32  No: 115888  IP: [192.*.*.*]

>Aテーブルから条件に合うデータを抽出しました。
データベースはなんですか?
接続方法は何ですか?(DAO?ADO?)

>最初のレコードを繰り返し登録するだけで、次のレコードを登録する
>事が出来ませんでした。

この部分のソースを記載して下さい。

編集 削除
ABC  2004-08-26 14:29:54  No: 115889  IP: [192.*.*.*]

かぶってしまいました。すみません。

編集 削除
稲兎  2004-08-26 14:38:09  No: 115890  IP: [192.*.*.*]

質問内容が不足していて申し訳ありません。

データベースはSQL Serverです。
ADOを使用しています。

編集 削除
稲兎  2004-08-26 14:51:23  No: 115891  IP: [192.*.*.*]

ソースは下記のようにしました。

        Do Until recData.EOF
            With recHozon
                .AddNew
                .Fields!tCD = strMatter
                .Fields!tDay = Format(Date, "yyyy/mm/dd")
                .Fields!hinmei = recData!hinmei
                .Fields!suuryou= recData!suuryou
                .Fields!No = intCnt
                .Update
                .MoveNext
            End With
            intCnt = intCnt + 1
        Loop

コレだと強制終了しないと延々繰り返してしまいます。
宜しくお願いします。

編集 削除
nanashi  2004-08-26 15:13:32  No: 115892  IP: [192.*.*.*]

ケアレスミスですね。
このMoveNextはrecHozonに対して行われています。
recDataをMoveNextして下さい。

編集 削除
稲兎  2004-08-26 15:39:34  No: 115893  IP: [192.*.*.*]

皆様、回答ありがとうございます!

以下の方法にて解決出来ました。

        Do Until recData.EOF
        With recData
            intCnt = intCnt + 1
        With recHozon
            .AddNew
            .Fields!tCD = strMatter
            .Fields!tDay = Format(Date, "yyyy/mm/dd")
            .Fields!hinmei = recData!hinmei
            .Fields!No = intCnt
            .Update
        End With
            .MoveNext
        End With
        Loop

的確なアドバイスありがとうございました!!!

編集 削除