ITservice雄飛 プロモーションビデオ

2020年5月21日木曜日

ExcelからSQLserver(ローカル)に接続する。

お久しぶりです、
ITservice雄飛です。

今回は、技術ネタを。

実家の会社の基幹となる小規模なシステムがあるのですが。

WinXP+SQLserver2000+VB6業務用アプリ、という、

すごーく、すごーーーく、古すぎる(運用20年)のシステムでして。

これがそろそろ、本当に壊れそうになってきた。

サポートはもう切れて(もう売ってもないし、サポートもしてくれない)おり。

仕方なく、Excelにて、臨時のシステムを作る事になりました。

Excelって、こういう時、本当に力になるよね…。

先ずは、データの吸出しから。

データベース(SQL Server)に接続する(ADO)
https://excelwork.info/excel/databasesqlserver/

こちらのサイトを参考に致しました。

しかし、繋がらない。

「SQLserverが存在しないか、アクセスが拒否されました」

と出る。

そこで、さらにググってみる。

すると、「接続文字列」、「名前付きパイプ」というキーワードに、
辿り着きました。

SQL Serverが接続に使用しているプロトコルを確認する方法
https://became-free.com/sql-dm_exec_connections/

ローカルで接続する場合、「名前付きパイプ」で接続する事があるらしい。
その場合、接続文字列も変わってくる。

'VBA code
con = np:sql\hoge

例えるなら、こんな感じで接続が通りました。

しかし、今度はテーブルが見つからないという。


再びググる、ググる。

すると、こんな情報が見つかりました。

【SQL Server】オブジェクト名”○○”が無効です
http://lifesiz.com/adsense/?p=30


SELECT * FROM hoge;

ではなく、

SELECT * FROM hoge_DB.dbo.hoge;

と、データベース名をきちんと明記する。

すると今度は、テーブルにアクセス出来ませんと出る。


また、ググる、ググる。

SQL Serverのオブジェクトに権限を設定する
https://www.atmarkit.co.jp/ait/articles/0111/27/news001.html


これで、必要な権限を付与し、実行すると。
無事、データにアクセスできました。

それでは。

0 件のコメント:

コメントを投稿