最近、SQLの開発が続き、飽きてきたのでがっつりプログラムを組みたいと思っていたのですが。
念願叶い、Excel VBAのプログラムを組むことになりました。
というか今組んでる。
VBAとは、Visual Basic for Applicationの略で、マイクロソフトのOffice製品をVisual Basic(以後、VB)で制御しちゃおうというもの。
それを行う設定などは、また暇なときにブログに書こうと思ってるけど。
プログラミング初心者でも、奥の深いアルゴリズムを堪能できるという。
プログラミングの勉強にもオススメなもの。
今日は、Excelからネットワークでつながっているデータベースサーバーになかなか接続できなくて、エラーがバンバン出たけど、ネットでググって、なんとか解決しました。
SQL Server:ODBC接続する際にODBCデータソース(DSN)を作成せずにSQL Serverのデータベースに接続する(ODBCデータソースレス接続)方法
このサイトを見て解決しました。
素で、データベース接続を書くのは久しぶりでしたから、結構ハマりました。
だいたい、どこのプロジェクトも、自前のDB接続クラス持ってるし、そんなフレームワークばかり使ってたから。
腕が鈍ったかな。
Dim con As Object ' DB接続
Dim rec As Object ' レコードセット
Dim CS As String ' 接続文字列
Dim sql As String ' SQL文
' コネクションストリングの作成
CS = "PROVIDER=MSDASQL;"
CS = CS & "DRIVER={SQL Server};"
CS = CS & "SERVER=(サーバー名);"
CS = CS & "DATABASE=(データベース名);"
CS = CS & "UID=(ユーザー名);"
CS = CS & "PWD=(パスワード);"
' SQL文の作成
sql = "SELECT "
sql = sql & " *"
sql = sql & " FROM"
sql = sql & " SEISAN SS"
' DB接続オブジェクトの生成
Set con = CreateObject("ADODB.Connection")
' レコードセットオブジェクトの生成
Set rec = CreateObject("ADODB.Recordset")
' DB接続
con.Open CS
'MsgBox "REC直前"
' SQL実行
rec.Open sql, con
' レコードを閉じる
rec.Close
' DB切断
con.Close
データベース接続のバグを取り除いたら、あとはトントン拍子に仕事が進みました。
なんかバグが取れない時はヒヤヒヤしてたけど。
また勘を取り戻して、スキルアップしたかな。
プレゼンで工場の担当者受けがいいだけに、なんとかいいものを作らないとね。
