Microsoft Excel マクロで、SQL 操作をしようとしています。

 下のような、同じ内容のふたつのcsv ファイル: X.csv, Y.csv に対して、test() により新たなcsv ファイルZ.csv を作ろうとしています。

 想定では、単純に8列のcsv ファイルができると思ったのですが、一部の行でデータが欠落しています。csv では255文字までしか扱えない、との情報があったので250文字までに抑えたのですが、それでも期待通りには動きませんでした。

 マクロが間違っているのでしょうか。あるいは別の制限があるのでしょうか。

--- [X.csv/Y.csv: 2/3列目でa の数が増えていく] -------------
a,a,a,a
a,aa,aa,a
a,aaa,aaa,a
...
a,aa (全体で250個) a,aa (全体で250個) a,a
-----------------------------------------------------------------

--- [Z.csv = X.csv LEFT JOIN Y.csv: Data Source はd:\] -------
Sub test()
Dim rs As Object ' DBオブジェクト
Dim strcon As String 'DB接続
Dim strSQL As String '発行SQL

Set rs = CreateObject("ADODB.Recordset")

strcon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:\;" & _
"Extended Properties=""text;HDR=NO;IMEX=1;FMT=Delimited"";"

strSQL = "SELECT * INTO [Z.csv] " & _
" FROM [X.csv] AS TBL1 LEFT JOIN [Y.csv] AS TBL2 " & _
" ON TBL1.F1 = TBL2.F1 AND TBL1.F2 = TBL2.F2 AND TBL1.F3 = TBL2.F3 AND TBL1.F4 = TBL2.F4"

rs.Open strSQL, strcon, 3, 3
Set rs = Nothing
End Sub
---------------------------------------------------------------------

「Microsoft Excel マクロで」の質問画像
  • 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
  • 今の自分の気分スタンプを選ぼう!
あと4000文字

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング