- 締切済み
アクセス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を実行するところで、「日付エラー」となってしまいます。 データには特に日付等はないのでエラーになる原因がわかりません。 どなたかご教示いただけますでしょうか。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- piroin654
- ベストアンサー率75% (692/917)
(1) コードの意図は、CSVファイルの列を一つ取り出しては、 それをテーブルにする、すなわち列の数ほど テーブルを作成したい、ということでしょうか。 (2) CSVファイルの先頭の列にはフィールド名はあるのでしょうか。
- ereserve67
- ベストアンサー率58% (417/708)
>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 にしないといけないんじゃないですか.
お礼
すみません。 頂いた方法では解決することができませんでした。 同じ内容でエラーが発生してしまいます。