• ベストアンサー

Excelを使用してSQLServerに接続

主題の件について教えて下さい。 現在Excel2003のVBAを使用して、SQLServerにODBC接続し、 DBのテーブルデータを取得し、Excelに表示出来ないかを考えているの ですが、VBAの知識がほとんど皆無なので一向に進みません。 何か参考になるページなどありましたら教えてください。 理想はExcelのボタン一つでデータが取得出来れば良いのですが・・・。 よろしくお願いいたします。

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

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

ここのあたりを参考にしてください。 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_130_030.html 注意点は ・参照設定でADOを有効にしておく必要がある。 ・ADODB.CONNECTION、ADODB.RECORDSETを宣言する際にnewを付加しておく。 ぐらいかな。

taachan443
質問者

お礼

ありがとうございます。大変参考になりました。

関連するQ&A

  • SQLSERVER2005 ODBCでの接続について

    SQLSERVER2005 ODBCでの接続について Access2003からODBCで接続して利用しております。 今までリンクテーブルでODBC接続する場合、各クライアントPCにODBCのデータソースを設定しておりましたが、各クライアントにODBCのデータソースを登録しなくても、ODBCでリンクさせることができているものがありました。回りに聞ける人がいないので質問させていただきました。 1.SQLServer側でなにか特別な設定をしているのでしょうか?どうやって実現しているのか知りたいです。 2.SQLServer2000で同じことができますでしょうか? 教えていただければ幸いです。 情報が不足している場合はご指摘ください。 宜しくお願い致します。

  • SQLServer2000

    SQLServerにあるデータを他のプログラムから取得できません。ノーツ⇒ODBC⇒SQLServerのように設定しているのですが値の取得で失敗しているようです。クエリーは聞いているようです。 例えばノーツ⇒ODBC⇒アクセスではOKですが(クエリーされる。)、ノーツ⇒ODBC⇒SQLServerではダメです。エンタープライズマネジャーから同じクエリーを実行すると成功します。権限の問題なのか仕様の問題かわかりません。どなたか教えてください。 お願いします。

  • AccessとSqlServerのテーブルリンク

    Access2007とSqlServer2008を使用しています。 Accessで作成したテーブルを「データベースツール」-「データの移動」でSqlServerに移行してリンクする際、 (1)SqlServerに新規にデータベースを作成すると、リンクテーブルマネージャから見てもリンク先DBが正しく表示されますが、 (2)その後、その既存DBに同じAccess内の別のテーブルを、「データベースツール」-「データの移動」してリンクしたものは、リンクテーブルマネージャから見てもリンク先DBが ()となっており表示されていません。 ツールとしてSqlServer Management Studioを使っていますが、そこからでも(1)のテーブルは表示されていますが、(2)のテーブルは表示されません。 でもリンクはできているようなのです。 また、SqlServer Management Studioを使って、SqlServer内に新規テーブルを作成し、 それをAccessからリンクしようとしても、テーブルリンク一覧内に表示されない状態です。 (「外部データ」-「ODBCデータベース」…)にて SqlServerのファイルデータソースを表示しています) (2)のテーブルはSqlServer Management Studioから見ることができないため、更新・削除もできず困っています。 DB、テーブル、リンク方法等、何か問題があるのでしょうか? よろしくお願いします。

  • SQLSERVERへのODBC接続について

    はじめまして。SQLSERVERへのODBC接続がうまくいきません。 初心者ですがよろしくお願いします。 自宅に2台のPCがあり、LAN接続できるようになっています。 (2台ともWindowsXP HomeEdition SP3です) 1台のPCにSQL SERVER2005をインストールしてリモート接続等の環境設定を行いました。 そのサーバーに別のPCからSQL Server Management Studio Expressを利用して接続できることを確認しました。 (テーブルも作成してみました) また、別のPCからEXCELのVBAでADODBを利用して、そのテーブルのデータを取得できることも確認しました。 しかしながら、ODBCのデータソース作成がうまくいきません。 ●ドライバ  SQL Server バージョン:2000.85.1132.00 ●エラー内容  [ODBC SQL Server Driver][TCP/IP Sockets]指定されたSQL Server  が見つかりません。  ※最初はアクセスが拒否されましたみたいなエラーが出ていた   ような気もするのですが・・・ ドライバにSQL Native Client Version09.00.2047を使ってみても、「サーバー接続の確立時にエラーが発生しました」となってしまい接続できませんでした。 ODBCを利用する場合には、何か特別な設定等が必要なのでしょうか? よろしくご教授お願いします。

  • Access2002でSQLSERVERに接続

    Access2002でSQLSERVERに接続してデータを参照しクエリを実行して個別集計したいのですが、こっそり接続したいので方法を教えてください。 目的:Accessを開いたら、設定したSQLSERVERのテーブルがクエリ実行されて希望の集計結果が表示されるようにしたい(権限は参照)。テーブル設定情報はクライアントに見せない(セキュリティの為) 近所の書店ではあまり参考になる本がなかったので検索した情報をもとに下記方法で接続してみることにしました。 (1)標準モジュールを設定  Sub DB接続() dim adocon as New ADODB.Connection adocon.Open "Deiver={SQL Server}; server=サーバー名; database=DB名; uid=ID; pwd=パス;" cn.Open end sub (2)マクロにてAutoExecを作成   プロシージャーの実行でAutoExecを設定し、モジュールにはAutoEXEC()にて   Call DB接続を設定しました。 しかしこれではうまく接続できたのかどうかも動作確認できません。また(2)の処理後に select * from テーブル名 のクエリを実行するように設定しても、テーブルがないと メッセージが表示されるので、うまく動作できてないようです。 クエリにて 「select * from [odbc;Driver={SQL Server}; Server=サーバー名; uid=ID;database=DB名;].テーブル名;」では接続してSQLSERVERのテーブル情報が見れます。なので名前などの間違いではないようです。(Accessの知識不足ですが、一つしかテーブルが参照できなく、複数のテーブルから色々条件を設定してデータ抽出ができないので使えないと判断しました) モジュールやマクロを利用してSQLSERVERからデータを参照するコマンド・方法を教えてください。

  • Access or SQLServer どちらを使用しますか?

    こんにちは。 みなさんならAccessかSQLServerの、どちらのDBを使うかご意見ください(出来ればメリットやデメリットなどもあるとうれしいです) <環境> サーバー:Win2000Server、Access2000または、SQLServer7.0 クライアント:Win2000 ×10台 開発環境:VB6.0(SP5)、Win2000 <やりたいこと&悩み> 1)複数のパソコンからDBのデータをSelect、Insert、Update、Deleteする 2)データが多いので、Accessの場合は3つくらいのmdbに分けないといけない(Accessのサイズ上限を超えてしまう為)。分けた場合は、リンクテーブルが必要。データ数は、1ヶ月に3万件くらい 3)タイミングによっては、同時アクセスあり 4)AccessをDBとして試作品を作成したところ、ファイルをロックできませんでしたというエラーが1日1回程度でてしまう 5)SQLServerでは気軽(?)にユーザーがメンテナンスできない(Accessの知識は多少あり) このような感じですが、みなさんならどちらを選択されますか?ご意見よろしくお願いします。

  • SQLServer2000のselect文で

    SQLServer2000のselect文で select count(*) from Table を実行するのに30秒以上かかってしまいます。 データ数は100万件もありません。 全件数を取得するのになぜこんなにかかってしまうのでしょうか? 主キーはVarcharの50バイトです。 こんな単純な文でこれだけかかってしまうのは、 DBの設定が悪いのでしょうか? それともPCの性能が悪いのでしょうか?

  • 【C#かC++】SQLServerのテーブルへ、EXCELファイルからインポート

    いつも、「教えて!goo」にお世話になっています BombBombと申します。 質問です。 C#(もしくはC++)プログラムで、 SQLServer上に作成したDB内のテーブルに Excelファイルからデータをインポートしたいと思っています。 ManagementStudioの[オブジェクトエクスプローラ]画面で、[管理]フォルダの右クリックメニューから行う、 「データのインポート」では、Excelファイルからのデータインポートを 行うことはできましたが、プログラムからこの処理を行う方法がわかりません。 現在行っているプログラムは、 Windowsサービスで、あるフォルダを監視し、 指定形式のExcelファイルが入っていたら、そのデータをDBに登録する ・・・というものです。 (例えば、DB上にある[販売管理]TBLには「販売日」「商品ID」「担当者」の3つのカラムがあるとします。  同じように「販売日」「商品ID」「担当者」が1か月分記述された  Excelファイルがあり、そのデータをDBの[販売管理]TBLにレコード追加したい。という作業です) この作業を行うために、簡単にインポートできないかと考えたのですが、 できますでしょうか。 もしできない場合には、他にどのような方法が考えられますでしょうか? お手数ですが、 ご教授いただけると助かります。よろしくお願いします。 ++++++++++++++++++++++++++ OS:Windows2003Server DB:SQLServer2005 EXCEL:EXCEL2003 開発環境:VisualSutudio2005

  • ASPを用いてSQLServerからのデータ取得ができません。

    ASPを使ってSQLServerからのデータ取得ができません。 クライアントのPCから、Webサーバ経由でDBサーバへアクセスすると、 『[Microsoft][ODBC SQL Server Driver]分散トランザクション エラー』 というエラーメッセージが表示されます。 WebサーバとDBサーバが同一PC上にある場合は、問題なく実行できます。 また、同じテーブルを使って、簡単なサンプルコードを実行した場合では、WebサーバとDBサーバが別々のPC上にあっても問題なく動きます。 原因はIIS、もしくはSQLServerの設定にあるのか、それともASPファイルのソース自体にあるのか、わかりません。 どなたかご存知の方、よろしくお願いします。 DBとの接続はADO接続で、環境は、 Webサーバ/WindowsXP Pro、IIS 5.0 DBサーバ/WindowsXP Pro、SQLServer2000 を使っています。

  • MSAccessからSQLServerのリンクテーブル更新時のエラー

    MSAccess2000または2003からSQLServer2000のテーブルをODBC経由でリンクテーブルとし、直接開いてデータを更新しようとしたら「オプション機能は実装されていません」とのODBCエラーが出ます。 バージョンは以下の通りです。 SQLServer2000(SP3a) MSAccess2000(SP2) MSAccess2003(SP2) ODBC SQLServerドライバ(2000.85.1117.00) テーブルによってエラーが出るときと出ないときがあるのですが、特別違いは見当たりません。 解決策を教えてください。よろしくお願いします。