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

解決


稲兎  2004-08-26 23:03:52  No: 115886

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 23:27:47  No: 115887

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

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

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

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

MoveNextしてますか?

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

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


ABC  2004-08-26 23:28:32  No: 115888

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

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

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


ABC  2004-08-26 23:29:54  No: 115889

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


稲兎  2004-08-26 23:38:09  No: 115890

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

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


稲兎  2004-08-26 23:51:23  No: 115891

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

        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-27 00:13:32  No: 115892

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


稲兎  2004-08-27 00:39:34  No: 115893

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

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

        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

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


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加