excelからDBを見にいくにはどうすんのかなぁ [プログラミング]
DBは何使っているんだかわかんないんだけど、ExcelからRDBを読みに行くという話があった。事前に調べておこうと思ったんだけど、今までAccessでODBCを使ってOracleの中身を見にいったことぐらいしかなくて、VBAとかそんなのは関係なかった。GUIで設定できたので見れば思い出すと思うんだけど、昔の方法論がまだ生きていると言う意味ではOffice VBAと同じなので親和性はありそう。
http://excel.style-mods.net/tips_vbs/vbstips_9-01.htm
つなぐだけなら以下のコードでできるらしい。
UIDとPWDはDBを使っている人に聞くとして、DSNってなんだっけ?
DSNはたぶんGUIで作ったような気がするな、Accessの時でも。
https://docs.oracle.com/cd/E16662_01/quickstart/html/admin/dsn_setup_windows.html
そうそう、旧態然としたこのGUI。適宜情報を入れていけば自分の作った名前でDSNができたはず。これかどうかはわからないが、今でもODBCデータソース・アドミニストレータってあるのかしら。Macでこれを書いているので、Windows10で入っているのかどうかはよくわからない。まぁ入っていなかったら入れればいいんじゃないかとは思うけどどうなってるのかわからん。
https://docs.microsoft.com/ja-jp/sql/database-engine/configure-windows/open-the-odbc-data-source-administrator?view=sql-server-ver15
あ〜Windows10でもあるっぽい。まぁそうだよな。これでつなぐ設定はできそうなことはわかった。細かいところの設定がわからないのは別に探そう。
探していたらADOでつないで処理するソースが見つかった。
http://firebirdwiki.jp/webroot/?Excel%20VBA%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%28ADO%E3%80%81ODBC%29
ADODB.Connection.OpenにDSNやらの設定を全部突っ込めばいいっぽいが、如何せん細かい文字列をどこから取ってくればいいのかがわからない。ただそれさえわかれば、ODBCデータソース・アドミニストレーターでDSNを設定してあげなくても、そのままVBAを実行してつなぎに行けそうではある。
DSNを設定する場合にはこっちでもできるっぽい。
http://excel.style-mods.net/tips_vbs/vbstips_9-06.htm
DSNを設定した方が楽そうだ。ただポータビリティは無くなる。どっちにせよつなぐだけの用であればDSNをGUIで作った方が早そうだ。どこでも動くようにしろと言われた時には、その時に対応しましょうかね。直でソースに書く文字列の調べ方はおいおいやっていくということで。
ODBCとOLE DBはやり方が違うみたいだけど、イマイチその違いがわかるまで見てない。どっちもADOみたいだしよくわかんないな。とりあえず動かすという観点で動こう。どっちがどうとかはまぁいいや。前に.NETのドライバを使っていると、COMなVBAでは使えんという話があったけれども、対応するDBが昔のままのODBCを使っているといいな。
http://excel.style-mods.net/tips_vbs/vbstips_9-01.htm
つなぐだけなら以下のコードでできるらしい。
Set objConn = CreateObject("ADO.Connection") objConn.ConnectionString = "DSN=DSN1;UID=user1;PWD=password1;" objConn.Open
UIDとPWDはDBを使っている人に聞くとして、DSNってなんだっけ?
DSNはたぶんGUIで作ったような気がするな、Accessの時でも。
https://docs.oracle.com/cd/E16662_01/quickstart/html/admin/dsn_setup_windows.html
そうそう、旧態然としたこのGUI。適宜情報を入れていけば自分の作った名前でDSNができたはず。これかどうかはわからないが、今でもODBCデータソース・アドミニストレータってあるのかしら。Macでこれを書いているので、Windows10で入っているのかどうかはよくわからない。まぁ入っていなかったら入れればいいんじゃないかとは思うけどどうなってるのかわからん。
https://docs.microsoft.com/ja-jp/sql/database-engine/configure-windows/open-the-odbc-data-source-administrator?view=sql-server-ver15
あ〜Windows10でもあるっぽい。まぁそうだよな。これでつなぐ設定はできそうなことはわかった。細かいところの設定がわからないのは別に探そう。
探していたらADOでつないで処理するソースが見つかった。
http://firebirdwiki.jp/webroot/?Excel%20VBA%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%28ADO%E3%80%81ODBC%29
ADODB.Connection.OpenにDSNやらの設定を全部突っ込めばいいっぽいが、如何せん細かい文字列をどこから取ってくればいいのかがわからない。ただそれさえわかれば、ODBCデータソース・アドミニストレーターでDSNを設定してあげなくても、そのままVBAを実行してつなぎに行けそうではある。
DSNを設定する場合にはこっちでもできるっぽい。
http://excel.style-mods.net/tips_vbs/vbstips_9-06.htm
DSNを設定した方が楽そうだ。ただポータビリティは無くなる。どっちにせよつなぐだけの用であればDSNをGUIで作った方が早そうだ。どこでも動くようにしろと言われた時には、その時に対応しましょうかね。直でソースに書く文字列の調べ方はおいおいやっていくということで。
ODBCとOLE DBはやり方が違うみたいだけど、イマイチその違いがわかるまで見てない。どっちもADOみたいだしよくわかんないな。とりあえず動かすという観点で動こう。どっちがどうとかはまぁいいや。前に.NETのドライバを使っていると、COMなVBAでは使えんという話があったけれども、対応するDBが昔のままのODBCを使っているといいな。
Twitterまとめ投稿 2019/10/24 [Twitter]
carbonhydrat竹中平蔵「現代人は90歳まで働くことになる」 自分の10年~20年後の履歴書を書け #POL https://t.co/vR5jHpeADl この人はどこまで守銭奴なのでしょう。早期退職して自分のしたい事する国だってあるというのに… https://t.co/NhBUbalK5q10/23 09:11 carbonhydratRT @e_ikuon: よく雑誌とかに「地名でその土地の災害リスクがわかる」とかやってるけど、それなら地理院地図のサイトで「情報」ボタンを押して、ベクトルタイル提供実験→自然地形の順に表示させるとその土地の成り立ちから災害リスクまで表示してくれる。もっと知られても良いと思う。…10/23 09:32 carbonhydrat【第2話】プログラミング言語で「会話」ってできるんですか? 女子大生、多すぎるプログラミング言語に困惑 - sight 次世代を生み出すテクノロジーの視点 https://t.co/kX37SJ2X3d パソコンの女子高生がプログ… https://t.co/0gI1V5Owsf10/23 09:58 carbonhydratRT @pentaxxx: まだ20回くらいしか聞いてない段階で断言するが、Metal Galaxyは最高傑作。 ビルボード1位でも驚かないレベル。演奏と楽曲の水準も最高だけど、コンセプトアルバム的な曲構成がすばらしい。 https://t.co/6JYpeMgY4D10/23 09:58 carbonhydrat『先々週の台風の停電の救済策はなかったかも』名前を変えようと思ったがいい案がなかった..|https://t.co/h5MIcrwA6I10/23 10:39 carbonhydrat「その着せ替え人形は恋をする」が一巻だけ無料だったので読みました。ギャルがエロゲーのコスプレとかありえないシチュだったけど、表情とかが可愛くてエロいのでオススメ。10/23 10:58 carbonhydrat“絶対に怒らない”ひふみんの正論すぎる「感情コントロール法」 | PHPオンライン 衆知|PHP研究所 https://t.co/zq806gM0Cn @PHP_shuchi わかるけど世の中には悪意を持った人がごまんといるし、言… https://t.co/VmtT1HipKi10/23 18:48
2019-10-24 05:01
コメント(0)