- PR -

MYSQL

1
投稿者投稿内容
yasubou_4d
会議室デビュー日: 2007/05/08
投稿数: 2
投稿日時: 2007-05-08 11:46
初心者です。よろしくお願いいたします。

エクセルでODBC接続でMYSQLテーブルデータから取りたいのですが日本語が文字化けしま
す。エクセルのツールバーのデータの「外部データーの取り込み」では文字化けせずに正常に取り込みするこ
とができますが、VBコードで抽出すると日本語の部分が「????????」と文字化けしま
す。 どなたかご教授お願いいたします。

PCの環境およびVBコードは下記です。
windows XP HE
MySql5.0
myODBC3.51 (※set names sjisi設定)
Excel 2002
apache HTTP Server 1.3.26

mysql character set は下記です。
character_set_cliant ---> sjis
character_set_connection ---> sjis
character_set_database ---> sjis
character_set_filesystem ---> binary
character_set_results ---> sjis
character_set_server ---> sjis
character_set_system ---> utf8 (※sjisに統一したいのですが方法がわかりませんのでutf8のままです。)

VBコード
---------独立モジュール
' データベースとレコードセットへのオブジェクト変数
Public Cn As New ADODB.Connection ' データベースへの接続
Public Rs As ADODB.Recordset ' レコードセット
P_CnString = "DRIVER={MySQL ODBC 3.51 Driver};" _
& "SERVER=***.***.***.***;" _
& " DATABASE=DB_Name;" _
& "UID=****; password=********; OPTION=3"
Function P_OpenDatabase() As Integer
Cn.ConnectionString = P_CnString() ' データベース接続文字の取得
Cn.Open ' データベースへの接続

---------オブジェクトモジュール

Dim Sh4 As String
Dim TableName As String ' MySQLテーブル名
Dim Sq1 As String ' MySQLステートメント文字列
TableName = "seihin"
Sh4 = "Sheet3"

Sq1 = "SELECT * from " & TableName & " ORDER BY no"
Set Rs = New ADODB.Recordset 'レコードセットの初期化
Rs.Open Sq1, Cn
Rs.MoveFirst
Sheets(Sh4).Activate
ActiveSheet.Range("A2").CopyFromRecordset Rs'<---文字化けします。
------------
以上です。

1

スキルアップ/キャリアアップ(JOB@IT)