
MySQLの勉強を今年から始めておりますがAccessとの連携で詰まっ
てしまいました。
今MySQLをDBにし、Access2003をUIにして、運用しようと考えてお
ります。
■症状
VBAにてMyODBCドライバに接続を行い、MySQL内のデータベースに接
続し、テーブルの情報を取得する際に、int型やVarchar型は正常に
ACCESS側にて取得できるのですが、TEXT型が取得できません。
(文字列0の""が返されます。)
■情報は以下の通りです。
・WindowsXP SP2 (パッチ最新)
・MicroSoftAccess2003 (パッチ最新)
・MySQL 5.0.45-community-nt MySQL Community Edition (GPL)
・MyODBC5.01.01.00
※MySQL環境、PHP、Apache環境はXAMPP1.6.4のものです。
・MySQL文字コードは「UTF-8」にて統一
・VBAでのMyODBC接続はADOにて接続(ソース抜粋後述)
■試したこと
・TEXT型フィールドの値をVARCHAR型に変更するとACCESS側で取得
可能
・VBAで接続制御を行わず、テーブルリンクを行うと取得可能
・Accessからのデータ投入は問題ありませんでした。
(TEXT型フィールドへの反映も問題ありません。)
・データ自体はPhpMyAdminやPHP5、コマンドラインからは正常に
取得可能
・取得判別フラグ
■ソース抜粋(ACCESS2003側です。)
Private Sub cmdSubmit_Click()
Dim adoDb As New ADODB.Connection
Dim adoRS As ADODB.Recordset
DimstrSQL As String
Dim blnFlgAs Boolean
Dim blnFlg = False
adoDb.Open "Driver={MySQL ODBC 5.1 Driver};" & _
"server=localhost; database=***; uid=***; pwd=***;"
'adoDb.Open "dsn=***; uid=***; pwd=***;"
strSQL = "select * from kanagawa where post = '" & Me.txtPost & "';"
Set adoRS = adoDb.Execute(strSQL)
Do Until adoRS.EOF
MsgBox adoRS!pref
blnflg = True
Exit Do
Loop
If blnflg = False Then
MsgBox "該当レコードはありません。"
End If
adoRS.Close
adoDb.Close
Set adoRS = Nothing
Set adoDb = Nothing
End Sub
※「***」は実際にはIDとパスワード等を入れております。
※コメントアウトしてある接続構文も試しましたが結果は
変わりませんでした。
※HappyHappyIsland様のサイトを参考にさせて頂きました。
■MYSQLデータベース情報
DATABSE:zipcode
TABLE :kanagawa
カラム
id int(7) not null PRIMARY
post varchar(8) not null INDEX
k_pref text
k_area text
k_addr text
pref text
area text
addr text
今回はテストしたので、TEXT型をVARCHARに変更できましたが、
実運用では、255文字では対応できないフィールドが存在します
ので、VARCHAR対応は出来ません。
有効策が見出せない場合は、将来的にPHP5でのUI構築を考えてお
りましたので、前倒しで構築も考慮しておりますが、何卒ご教示
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
MySQL ODBC 5.1はβ版です。
http://dev.mysql.com/downloads/connector/odbc/5. …
引用
This is a Beta release of the new ODBC connector and has some bugs and lacks some features - please do not use in a production environment.
質問のプログラムを、5.1で試してみた所、
同様の不具合が発生しました。
3.51を使えば正常でしたので、5.1のバグではないでしょうか?
MySQL ODBC 3.51を試してみて下さい。
---------------------------------------------------------
確認した環境は下記です。
ADO 2.7
MySQL 5.0.45
MySQL ODBC 5.01.01.00
MySQL ODBC 3.51.23.00
ありがとうございます。
帰り際にもしやと思い、3.51を組み込んでみたら無事動作しました。
ベータリリースのところを思いっきり見逃していたみたいです。
3.51も懸念していたUTF8での文字化け関連も見られないので、このま
まいこうと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ローカル以外のMySQLをphpMyAdm...
-
MySQLカラム名は日本語と英数字...
-
MYSQLで日本語が入力できない
-
Oracle9i で XMLType (CLOB) の...
-
ODP.NETのバージョン確認
-
コメントが消えてしまいます
-
旧filemakerで和暦(令和など)...
-
副問合せにLIKE文を使う方法は...
-
MYSQL バイナリデータ変換取得
-
ユーティリティーとは?OPatch...
-
ACCESSのフィールドサイズについて
-
MySQL のコマンドが実行出来ま...
-
MYSQLのデータに「;」を入力
-
select文でのデータの取り出し方法
-
mampのsqlserver が起動しなく...
-
エクセルで連勤チェックをした...
-
MySQL TIMESTAMP型は、UTCですか?
-
like句を使って日本語を検索す...
-
何がおかしいでしょうか?
-
SQLのVARCHARとVARCHAR2の違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ポート3306へつながらず、MySQL...
-
XAMPPのMySQLを外部から接続で...
-
MySQLやPorstgresなどのサーバ...
-
ローカル以外のMySQLをphpMyAdm...
-
MySQLへの接続について
-
Win98とMySQLについて
-
「CSE」や「かねやん」からのMy...
-
ACCESSとXサーバーをODBCで接続...
-
アクセス制限
-
visual web developer 200...
-
MySQLにリモートホストから接続...
-
PHP+MySQL 接続できません
-
バージョンの違うMySQLのリモー...
-
データベースエンジン
-
root以外のユーザでのODBC接続...
-
MySQL Serverへのリモート接続...
-
DBから取得した値を加工して別...
-
MySQLの外部ホストのデータベー...
-
Puttyでサーバー上のMySQLを操...
-
VB.NETからMYSQLへ接続 (する...
おすすめ情報