• ベストアンサー

ExcelからSQLサーバへデータを登録する方法

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

質問者が選んだベストアンサー

  • ベストアンサー
  • skink
  • ベストアンサー率38% (7/18)
回答No.3

逐次ではなく、最後に(ボタンとかを押して)まとめて書き込むとして、 ・Excelを開く (データの入力) (記入終了のボタンを押す) ・SQLサーバーに接続 ・テーブルへのデータの挿入(SQL文でのINSERT) ・SQLサーバーの切断 (・Excelに関する終了処理) 個々に分けて考えれば、検索すれば事例はたくさん出てくると思います。 具体的につまずいたところがあれば、また。

その他の回答 (4)

回答No.5

※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/#CHAPTER006

回答No.4

お世話になります。 私の場合は,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

  • skink
  • ベストアンサー率38% (7/18)
回答No.2

すみません。補足です。 私はSQLサーバーではなくOracle使用ですが、ほぼ同じことをしています。 KOHEI_JAPANさんが現在どこまでできていて、なにをしたいのかもう少し具体的に教えていただければ幸いです。 VBからEXCELを開くとこまではOKとか、SQLサーバーとの接続はできてるのかとか、データは逐次か入力後まとめてエクスポートしたいのかとか、そのあたりよろしく。

KOHEI_JAPAN
質問者

補足

早速のご回答ありがとうございます! まだ作っていませんが、できそうなことは、 VBからエクセルを開くことはできそうなのですが、 その後がどうしたらいいのか想像がつきません??? イメージとしては、SQLサーバにすでにテーブルがあって、 そのテーブルに毎日データを追加する作業があるので、 エクセルから直接サーバにアップできればと思ったのです。 エクスポートのタイミングはいつもでもいいので、 簡単な方がいいと思っています。 どうぞ、よろしくお願いしますm(_ _)m

  • skink
  • ベストアンサー率38% (7/18)
回答No.1

マクロを使えば可能かと思います。 セルを監視して、値が入るたびにINSERT文を呼べばよいのでは?

関連するQ&A