- ベストアンサー
エクセルからアクセスへデータ転送方法と更新方法について
- エクセルからアクセスにデータを転送する方法について詳しく教えてください。
- エクセルからアクセスに列ごとにデータを追加する方法を教えてください。
- 既存のデータに追加せずに上書きする方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>エクセル側には例えば"A1"から"E10"まで、10行データがあるとして、アクセスでこのデータをインポートするのでは無く、エクセル側からアクセスへ送りたいのですが。 あなたのコードでDBとのコネクションのopen テーブルをopenができているのでしたら Rs.addnew から Rs.Updateまでが1行分の処理ですからこれをLoopする。 後DB、RsともにCloseの後消す余殃にしたほうがいいですね set DB=Nothing
その他の回答 (3)
- rivoisu
- ベストアンサー率36% (97/264)
いえいえAccess側からインポートとかいう問題ではなく 「列ごと」という考え方がおかしいのではないでしょうか と言っているのです。
補足
「列ごと」がおかしいのであれば、全ての行をと表現したら良いのでしょうか? エクセル側には例えば"A1"から"E10"まで、10行データがあるとして、アクセスでこのデータをインポートするのでは無く、エクセル側からアクセスへ送りたいのですが。
- rivoisu
- ベストアンサー率36% (97/264)
”列ごと”というのがどうもデータベースというかいわゆるコンピュータのデータ処理の考え方にはない(普通ではない) 本でも読んで一般的な考え方を勉強してみてください データベースは列数が固定で行数が可変。 一般的にデータベースも含めて外部データは行単位で扱います。
お礼
なるほど私の勉強不足でした。 アクセス側からインポートするしか方法は無さそうですね。
- rivoisu
- ベストアンサー率36% (97/264)
更新はaddnewがいらない。 現在位置づけされているデータが上書きされる。 列ごとの転送はできないと思います。逆はできるのですが(RSからシートへの転記) 更新は通常キーが一致するものに対して行われると思いますが、RSのその行にカーソルが位置づけされている必要があります。ここでデータの転送をおこないUpdateで更新します。
補足
列ごとの転送ができないのなら、データのあるセルだけを転送はできませんか?セル一つづつしか無理でしょうか?
お礼
ありがとうございます。 やってみます。空白の行の場合はLoopしない様にしたらいいんですね。