• 締切済み

ファイルの読み込み

CSVファイルを読み込んでAccessへ格納したいのですがどうしたら良いのでしょうか? ここまではできたのですが・・・・。 Private Sub Command1_Click() CommonDialog1.Flags = cdlOFNFileMustExist Or cdlOFNHideReadOnly CommonDialog1.ShowOpen End Sub

みんなの回答

回答No.4

固定長でADOでしたら以下の処理で良いかと思います。 Dim AcsConnect As New ADODB.Connection Dim FileNumber As Integer Dim TextLine As String 'ADOにてAC97との接続を確立する AcsConnect.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=Accessファイルのパス&ファイル名;" 'ファイル番号取得 FileNumber = FreeFile() 'CSVファイルの読込 Open CSVファイルパス&ファイル名 For Input As #FileNumber 'ファイルの終端までループ   Do While Not EOF(FileNumber) '1行読込 Line Input #FileNumber, TextLine 'インサート AcsConnect.Execute "INSERT INTO [テーブル名] (フィールド1,フィールド2) " & _ "VALUES (" & Mid(TextLine,1,2) & "', " & Mid(TextLine,4,2) & "');" Loop Close #FileNumber Close AcsConnect CSVファイルを開いて一行ずつ読み込んでインサートしています。 固定長なのでデータはMid関数で指定しています。 フィールド数が少ない場合はこの方法で簡単にできますが 多いようであればレコードセットに変更した方が管理しやすく見やすいと思います。

すると、全ての回答が全文表示されます。
回答No.3

はじめましてmarumaru_a_wといいます ひとつアドバイスなのですが 何がわからないのかがわかりません。 ダイアログを表示するところまでしかわからないってことですかね? Accessへの接続の仕方とかCSVファイルの読み込みの仕方とか、まったくわからないのでしょうか?

すると、全ての回答が全文表示されます。
回答No.2

この質問では状況が把握できないので回答が難しいかと思います。 たとえば VBのバージョン。 CSVは固定長なのか可変長(区切り文字は何?)なのか。 AccessへはDAOで保存なのかADOで保存なのか。 また、ダイアログを表示させているようですが『ここまではできた』ではなく『ダイアログを表示させてファイル名取得までできています』と書いてあると分かりやすいと思います。

asachin1126
質問者

補足

すみません。 バージョンはVB6.0です。 CSVは固定長で区切りは空白区切り(スペース区切り)です。 ADOで保存したいです。

すると、全ての回答が全文表示されます。
noname#24731
noname#24731
回答No.1

CommonDialogを使いたいようですが、小生はその方法はわかりません。 DBGridコントロールdataコントロールなどを組み合わせる方法もあると思います。 どのくらいVBを知っているかにも寄りますが、 小生は次の考え方でやってます アクセスDBは別途設計 Dim DB As Database Dim RS As Recordset Dim R As Integer, I As Integer Open "C:|Folder\Filename.CSV" For Input As 1 Set DB =opendatabase(・・・・・・・・ Set RS =DB.OpenRecordset(・・・・・・ Do Until EOF(1) 'CSVの項目数だけ 配列に読み込む RS.AddNew '(場合によってはKEYより検索し RS.Edit) '各項目をSET RS.Update Loop Close この考え方でACCESSへ格納できます 蛇足ですが プロジェクトでDAOなど必要です

すると、全ての回答が全文表示されます。

関連するQ&A