3

VBA を使用して、サーバー上にあるローカル マシンから MySQL に接続しようとしています。最初に、以下のエラーを受け取りました。

[Microsoft][ODBC Driver Manager] データ ソース名が見つからず、既定のドライバーが指定されていません。

いくつかの調査の後、MySQL ODBC ドライバーを最初にインストールする必要があることがわかりました。以下の場所からドライバーをインストールしました。

http://dev.mysql.com/downloads/connector/odbc/

私は64ビットマシンを持っているので、64ビット用のドライバーをインストールして接続を確立しようとしました。それでも、同じデータソース名が見つからないというエラーを受け取りました。しかし、ODBC データ ソース アドミニストレーターから、システム DSN を選択すると、MySQL ドライバーがインストールされていることを確認でき、サーバーにデータベース用の新しいデータ ソースを作成できます。

ただし、VBA からデータ ソースを呼び出すと、別のエラーが発生します。

[Microsoft][ODBC Driver Manager] 指定された DSN には、ドライバーとアプリケーションの間のアーキテクチャの不一致が含まれています。

これは、VBA からデータ ソースを呼び出す方法です。

Dim oConn As ADODB.Connection
Set oConn = New ADODB.Connection
oConn.Open "data_source_name"

また、64 ビット ODBC コネクタの場合、システム DSN で以下の 2 つのドライバを確認できます。

  • MySQL ODBC 5.2 ANSI ドライバー
  • MySQL ODBC 5.2 Unicode ドライバー

どちらのドライバーでも、ODBC データ アドミニストレーターからの接続は成功しています。

アーキテクチャの不一致の問題の解決策を見つけようとしましたが、64 ビット マシンで以下の場所から ODBC アプリケーションを実行して DSN を作成すると、動作する可能性があることを読みました。

C:\Windows\System32\odbcad32

ただし、このシナリオでも、同じアーキテクチャの不一致エラーを受け取りました。

マシンに MySQL Connector/ODBC 5.2.5 32 ビットをインストールしてみました。この場合、システム DSN にリストされているドライバーを確認できません。

誰かが実際に何が間違っているのかを理解するのを手伝ってもらえますか?

4

3 に答える 3

3

結果セットを選択してループし、挿入を行うことができます。データベースで検証されたデータ。助けが必要な場合はお知らせください

windows 7 Ultimate
version 6.1 (build 7601: service pack 1)
64 bit
************************************************************************
ODBC Data Source Administrator
run by command:    %windir%\system32\odbcad32.exe

2 drivers:
MySQL ODBC 5.2 ANSI Driver , 5.02.05.00, Oracle, MYODBC5A.DLL, 4/4/2013
MySQL ODBC 5.2 Unicode Driver , 5.02.05.00, Oracle, MYODBC5W.DLL, 4/4/2013
************************************************************************
create System DSN, named hp
using Unicode Driver
dsn=hp
descr=hp
tcpip server=192.168.1.11
user=root
password=xxxxx
Database=test
************************************************************************
ODBC Data Source Admin tool
far right tab called About
Admin, Control Panel, Cursor Library, Driver Mgr, Localized R DLL, Unicode Cursor Lib all Version 6.1.7601-ish
************************************************************************
MSFT Office Professional Plus 2010
Version 14.0.6129.5000 (64 bit)
VBA 7.0
Tools Menu / References / References - VBAProject, scroll down, click on:
Microsoft ActiveX Data Objects 6.1 Library
References Location= c:\program files\common files\system\ado\msado15.dll
************************************************************************
code same, get into an excel Macro:
Sub Macro1()
'
' Macro1 Macro
'

Dim oConn As ADODB.Connection
Dim rsPass As ADODB.Recordset
Dim sql As String

Set oConn = New ADODB.Connection
oConn.Open "hp"
Set rsPass = New ADODB.Recordset
sql = "select * from charlie1"
rsPass.Open sql, oConn
rsPass.Close


sql = "insert into charlie1 (billybob,birthdate,funny_num) values (5,now(),383.111)"
rsPass.Open sql, oConn


End Sub
于 2013-05-25T18:29:22.367 に答える
3

タスク マネージャーを実行し、EXCEL.EXE を探します。おそらく、その後に *32 が含まれています (問題は、32 ビット バージョンの Excel を実行していて、64 ビット バージョンの MySQL Connector/ODBC を使用しようとしていることです)。

解決する:

  1. 64 ビット ドライバーをアンインストールする前に、定義済みの ODBC データ ソース (DSN) をすべて削除してください (ドライバーが既にアンインストールされている場合は削除できません)。
  2. 64 ビットの MySQL コネクタ/ODBC ドライバーをアンインストールする
  3. 32 ビット バージョンの MySQL コネクタ/ODBC ドライバーをダウンロードしてインストールします。
  4. DSN を設定するには、http://forums.mysql.com/read.php?37,357786,360776#msg-360776 を参照してください。

注: 64 ビット ドライバーと 32 ビット ドライバーの両方をインストールできる場合があるため、64 ビット バージョンをアンインストールする必要はありません。両方とも必要なかったので、両方をインストールできるかどうかはテストしていません。

于 2013-10-30T13:09:01.643 に答える