|
「おさっち」と申します。
どうぞよろしくお願いいたします。
Excel2003のVBAマクロで、ODBCを経由でSQLite3のデータベースをアクセスしようとしています。
データベースには、EUCでエンコードされたデータが入っています。
Excelは文字データをUnicodeで管理しているので、そのままセルに書き込んだら文字化けしてしまいます、
EUC→Unicodeのコード変換が必要だということはわかったのですが、具体的な方法がわかりません。
とりあえずは、読むだけの以下のようなマクロを組んでいるのですが、文字化けしています。
どのようにすれば、文字化けを解消できるでしょうか?
文字化けせず読むことができたら、Unicode→EUCのコード変換を行った追加・更新もしたいと考えています。
こちらもよろしくお願いいたします。
Public Sub For_Question()
Dim cnDatabase As ADODB.Connection
Dim rs As New ADODB.Recordset
Dim m_Field As ADODB.Field
Dim i As Long, j As Long
Dim Sql As String
Dim cnt As String
cnt = "Driver=SQLite3 ODBC Driver; Database=C:\excel_sqlite3_test\test.db"
Set cnDatabase = New ADODB.Connection
cnDatabase.Open cnt
Worksheets("methodtbl").Select
Cells.Select
Selection.Clear
Cells(1, 1).Select
Sql = "SELECT * FROM methodtbl"
rs.Open Sql, cnDatabase, adOpenForwardOnly
'フィールド名表示
j = 1
For Each m_Field In rs.Fields
Cells(1, j).Value = m_Field.Name
j = j + 1
Next m_Field
'データ表示
i = 2
Do Until rs.EOF
j = 1
For Each m_Field In rs.Fields
Cells(i, j).Select
Cells(i, j).Value = "'" & m_Field.Value
j = j + 1
Next m_Field
i = i + 1
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
End Sub
|
|