• 締切済み

アクセスVBA。ADO

CSVから列を分割してテーブルにしたいかったので 下記のコードを記述しましたが、 Dim cn As ADODB.Connection Dim rs As New ADODB.Recordset Dim datacount As Long Set cn = New ADODB.Connection With cn .ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & CurrentProject.Path & "\;" .Properties("Extended Properties").Value = "text;HDR=YES;" .Open End With Set rs = cn.Execute("SELECT * FROM 構成マスタ.csv") datacount = rs.Fields.Count For i = 0 To datacount strsql = "SELECT " & rs.Fields(i).Name & " INTO " & rs.Fields(i).Name & " FROM 構成マスタ.csv;" cn.Execute strsql Next i rs.Close cn.Close Set rs = Nothing Set cn = Nothing SQLを実行するところで、「日付エラー」となってしまいます。 データには特に日付等はないのでエラーになる原因がわかりません。 どなたかご教示いただけますでしょうか。

みんなの回答

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

(1) コードの意図は、CSVファイルの列を一つ取り出しては、 それをテーブルにする、すなわち列の数ほど テーブルを作成したい、ということでしょうか。 (2) CSVファイルの先頭の列にはフィールド名はあるのでしょうか。

回答No.1

>Set rs = cn.Execute("SELECT * FROM 構成マスタ.csv") >datacount = rs.Fields.Count >For i = 0 To datacount >strsql = "SELECT " & rs.Fields(i).Name & " INTO " & rs.Fields(i).Name & " FROM 構成マスタ.csv;" >cn.Execute strsql >Next i Fields(*)の番号*は0から始まります.だから,引用の上から3行目は datacountをdatacount-1 にしないといけないんじゃないですか.

liso
質問者

お礼

すみません。 頂いた方法では解決することができませんでした。 同じ内容でエラーが発生してしまいます。

関連するQ&A