![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- PostgreSQL PostgressからMySQL(MariaDB)へ構造を変更する際のTimestamp等について 2 2023/04/04 12:09
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP+MySQL 接続できません
-
MySQLに外部PCから接続できない
-
MySQLサーバのコンピュータ名変...
-
MySQLでエラーがでて前に進めま...
-
接続ができません
-
VBAで変数内に保持された二次配...
-
ERROR 1045 (28000) (using pas...
-
副問合せにLIKE文を使う方法は...
-
ADOのバージョンを確認する方法
-
like句を使って日本語を検索す...
-
SQLのVARCHARとVARCHAR2の違い
-
プライマリーキーの昇順でソー...
-
ヌル値は記憶容量を必要としな...
-
ERROR 1054 (42S22) 原因不明です
-
ODP.NETのバージョン確認
-
一行目のレコードを2度表示さ...
-
mysqldumpでリストアし一部外字...
-
Usage: \\.<filename> | sourc...
-
文字コードMS932(Windows-31J...
-
windows上のphpにおける全角ハ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MySQLにリモートホストから接続...
-
MySQL sleep が溜まる
-
MySQLでエラーがでて前に進めま...
-
mysql_close();の必要性について
-
cseの使い方について
-
ACCESSとXサーバーをODBCで接続...
-
ACCESSとMySQLとの連携 TEXT型...
-
他のPCにあるmysqlにDOSで接続。
-
mySQLでエラーが出ます。
-
シャットダウン後にDBサーバに...
-
MySQLサーバのコンピュータ名変...
-
Mysqlのサーバーを立ち上げる方法
-
MySQLやPorstgresなどのサーバ...
-
ローカル以外のMySQLをphpMyAdm...
-
ログイン履歴について
-
xamppのphpmyadminに入れない
-
PHPとデータベースの接続ができ...
-
MySQL Serverへのリモート接続...
-
MySQLに外部PCから接続できない
-
PHPで「myql関数」が使用できな...
おすすめ情報