重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

WindowsXP,VB6,SP5で開発しています。

質問なんですが、
VBからエクセルを開いて、エクセルに直接データを入力し、
そのエクセルで入力したデータを、SQLサーバにある既存のテーブルにエクスポートする。
なんてこと、できますでしょうか?
できるとしたら、どんな方法がありますか?
かなり困ってます。どうぞ、よろしくお願いしますm(_ _)m

A 回答 (5件)

逐次ではなく、最後に(ボタンとかを押して)まとめて書き込むとして、



・Excelを開く
(データの入力)
(記入終了のボタンを押す)
・SQLサーバーに接続
・テーブルへのデータの挿入(SQL文でのINSERT)
・SQLサーバーの切断
(・Excelに関する終了処理)

個々に分けて考えれば、検索すれば事例はたくさん出てくると思います。
具体的につまずいたところがあれば、また。
    • good
    • 1

※1みなさんが、言われている方法


・エクセルに書く
・各行[A/B/C/・・・]と対応するSQLサーバのフィールドに対し、INSERT文を発行する

アプリケーションとして、王道の流れです。


※2それ以外の方法としてはSQLサーバなので
・エクセルに書く
・エクセルのデータを、テーブル単位でテキスト形式で保存
・BCPコマンドで、テキストファイル(テーブル)単位まとめてSQLサーバにぶっこむ

アプリケーションとしては非常に不向きです。
トリガやリレーショナルを無視して、データを作成できちゃいます。
ただ、テストをするためのデータ管理などであれば、ツールとして非常に便利です。



あなたは、どの部分がききたいのですか?
>かなり困ってます
あなたがした行動が全く見えません。

ここの掲示板にExcel関係の履歴は異常なほどいっぱいあります。
・Excel関係全般(Excel.Application)
・開く(Workbooks.Open)
・保存(Save)
・書く(Value)
・読む(Value)

ただ、Excelを介する理由もよくわかりません。

Excelシートを各事業所から収集して、それをサーバのDBにアップするのであれば、
・EXCELのデータを読む
・EXCELデータからDB更新
で良いと思うのですが、
・元ネタを読む
・元ネタをEXCELに書く
・EXCELのデータを読む
・EXCELデータからDB更新
ならば、EXCEL処理が邪魔なだけに思うのですがいかがでしょう?


パーツを質問しているのであれば、メソッド一つの回答で済みますが、流れを質問するのであれば、背景も一緒に書きましょう。
http://www.geocities.co.jp/SiliconValley/5656/#C …
    • good
    • 0

お世話になります。



私の場合は,PostgreSQLですが,
似たような事やっています。
ご参考になれば。
#3さんと若干かぶりますが…

■外部ファイル
(1)DB接続情報を記述したファイル
(2)Excelの何番目の列が,PostgreSQLのどのテーブル
 のどのFieldに該当するかのマッピング情報
 を記述したファイル

■手順
1.(1)・(2)を読みこんで内容をメモリ上に保持。
2.ユーザーにExcelファイルをUIで指定させる。
3.Excelファイルのシート群を取得。
4.ユーザーにどのシートかを選択させる。
5.確認画面の表示。
6.Excelのデータと(2)を元に,メモリ内に
 SQL文の配列を生成。
7.ユーザーはボタンを押して実行。
8.(1)に基づいてDB接続し,
 begin transaction
 SQL文の配列の実行
 commit transaction
    • good
    • 0

すみません。

補足です。
私はSQLサーバーではなくOracle使用ですが、ほぼ同じことをしています。
KOHEI_JAPANさんが現在どこまでできていて、なにをしたいのかもう少し具体的に教えていただければ幸いです。

VBからEXCELを開くとこまではOKとか、SQLサーバーとの接続はできてるのかとか、データは逐次か入力後まとめてエクスポートしたいのかとか、そのあたりよろしく。

この回答への補足

早速のご回答ありがとうございます!
まだ作っていませんが、できそうなことは、
VBからエクセルを開くことはできそうなのですが、
その後がどうしたらいいのか想像がつきません???

イメージとしては、SQLサーバにすでにテーブルがあって、
そのテーブルに毎日データを追加する作業があるので、
エクセルから直接サーバにアップできればと思ったのです。
エクスポートのタイミングはいつもでもいいので、
簡単な方がいいと思っています。

どうぞ、よろしくお願いしますm(_ _)m

補足日時:2005/08/26 10:16
    • good
    • 0

マクロを使えば可能かと思います。



セルを監視して、値が入るたびにINSERT文を呼べばよいのでは?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!