「ODBCデータソースアドミニストレータ」にDSNが表示されない2016年10月28日 16時05分33秒

「ODBCデータソースアドミニストレータ」にDSNが表示されない


先日、大崎で仕事をした時にMySQLにODBC接続するドライバをインストールしたが、その確認がODBCデータソースアドミニストレータで出来ないという問題が発生した。
マイクロソフトのOffice製品でMySQLにODBC接続してデータを抽出するというEUC(エンドユーザーコンピューティング)ツールの改修だったので、どうしてもDSNの情報が必要だったのだ。

現象:
64ビットOSに32ビットのMySQLのODBCドライバをインストールして「ODBCデータソースアドミニストレータ」で確認してもにDSNが表示されない。

ODBC接続ドライバ(32ビット版)を64ビットOSにインストールした場合、「ODBCデータソースアドミニストレータ(64ビット)」にインストールドライバが表示されない場合がある。
それは、「C:\Windows\System32\odbcad32.exe」を開いている為で、「C:\Windows\SysWOW64\odbcad32.exe」を開くと、「ODBCデータソースアドミニストレータ(32ビット)」として登録されていることがある。

※64ビットOSの場合、どちらの「ODBCデータソースアドミニストレータ」を開いているかを確認する必要がある。
※特に、大手の企業では、コントロールパネル等の管理画面を表示させない設定でキッティングされている場合があるので、要注意だ!

開発事例

ExcelでMySQLサーバーへ接続2016年10月28日 16時47分11秒

ExcelでMySQLサーバーへ接続

マイクロソフトのOffice製品でMySQLに接続するには、
1.MySQL用のODBC接続ドライバをインストールする。
2.「ODBCデータソースアドミニストレータ」でDNSを作成・設定する。
3.VBAでODBC接続のプログラムを作成する。


Sub MySQL接続()
On Error GoTo errHandler
Dim myCon As New ADODB.Connection 'Connectionオブジェクト

'接続文字列を設定する
myCon.ConnectionString = "Driver={MySQL ODBC 5.1 Driver};" _
& "Server=localhost; Database=kokyaku_kanri; Uid=root; Pwd=1234"'MySQLのIDとパスワード
'Server=localhost;はサーバーの名前、またはIPアドレスを記述。ここでは自分自身を指定している。
'データベースに接続する
myCon.Open
MsgBox "接続しました。"
'※ここにデータベースの処理を記述します。
'接続を切断する
myCon.Close
MsgBox "切断しました。"

procContinue:
Set myCon = Nothing
Exit Sub

errHandler:
'エラーが発生した場合にエラーメッセージを表示する
MsgBox Err.Description
Resume procContinue
End Sub

以上でExcelでMySQLサーバーへ接続が可能になります。
開発事例


「ODBC DNS エントリの作成」2016年10月28日 16時57分47秒

「ODBC DNS エントリの作成」

MySQLにマイクロソフトのOffice製品で接続する場合、ODBC接続を使います。
以下、PDFにMySQLのODBC接続ドライバをインストール後の「ODBC DNS エントリの作成」手順を記載します。
開発事例


更新用パススルークエリの設定2016年10月29日 12時44分11秒

更新用パススルークエリの設定

※更新系のパススルークエリを作成する場合、設定の不具合でエラーが表示(実行時エラー'3325')され、実行時エラーで停止する事がある。
以下の設定を行う事で、エラー表示および実行時エラーを回避する事ができる。

開発事例


クエリのSQL文を書き換える2016年10月29日 13時03分28秒

クエリのSQL文を書き換える

AccseeのクエリのSQL文を書き換えるには、クエリのSQLプロパティを書き換えます。
以下に基本的なパススルークエリのSQL文の変更方法を記載します。
開発事例


パススルークエリの作り方2016年10月29日 13時23分00秒

パススルークエリの作り方:

※パススルークエリは、SQLサーヴァーへ直接SQL文を送信して実行するので、SQLサーヴァー側のSQL文法に合わせたSQL文を作成しなければならない。
開発事例


MySQLのテーブルをリンクテーブルにする2016年10月29日 14時15分00秒

MySQLのテーブルをリンクテーブルにする

ODBC接続のデータベースのテーブルをAccessにハードリンクする方法を記載します。
事前に、
①リンクするデータベース(今回はMySQL)のインストールが完了している。
②リンクするデータベース用のODBCドライバのインストールが完了している(ODBCデータソースアドミニストレータでドライバが確認できる)。
③ODBC DNS エントリの作成が完了している。

※上記の事前準備が完了している前提で、以下の手順でMySQLのテーブルをリンクテーブルにします。
開発事例