VBA を使用して SQL クエリを実行し、結果を Excel ワークシートにコピーする際に問題が発生しています。
サブルーチンが実行されると、256 の倍数の行のみがコピーされます (したがって、行 256、512、768 などだけが Excel に入力されます)。データベースから他のフィールドをコピーするのに問題はありません。また、MySQL で同じクエリを実行すると、正常に動作します。SQL と VBA の両方にかなり慣れていないので、この特定のフィールドが問題を引き起こしている理由がわかりません。私が考えることができる唯一のことは、その内容が常にアンダースコアで始まる文字列であることです (そして、それが他のフィールドとの唯一の違いであるため、それについてのみ言及します)。
なぜこれが起こっているのかについて誰か考えがありますか?
乾杯、
リアム
編集: 問題のコードのスニペットを次に示します。正直なところ、他の状況でも問題なく機能するため、コードを見て違いが生じるかどうかはわかりませんが、それが私が初心者である理由です:)
Dim con As ADODB.Connection
Dim rst As ADODB.Recordset
Set con = New ADODB.Connection
Set rst = New ADODB.Recordset
con.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=ipaddress;UID=userID;PWD=password;DATABASE=jiradb;OPTION=16427;"
con.Open
sql = "SELECT TEMPO_DATA FROM gssd_worklog WHERE WORK_DATE BETWEEN '2012-01-01' AND '2012-03-31'"
'Open Recordset'
rst.Open sql, con
'Copy Data to Excel'
Set ws = ActiveSheet
ws.Range("A2").CopyFromRecordset rst