こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

ファイルの読み込み

CSVファイルを読み込んでAccessへ格納したいのですがどうしたら良いのでしょうか?
ここまではできたのですが・・・・。

Private Sub Command1_Click()

CommonDialog1.Flags = cdlOFNFileMustExist Or cdlOFNHideReadOnly
CommonDialog1.ShowOpen

End Sub

投稿日時 - 2005-02-28 14:30:02

QNo.1242963

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.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関数で指定しています。
フィールド数が少ない場合はこの方法で簡単にできますが
多いようであればレコードセットに変更した方が管理しやすく見やすいと思います。

投稿日時 - 2005-03-01 13:10:22

ANo.3

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

投稿日時 - 2005-03-01 12:48:21

ANo.2

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

投稿日時 - 2005-02-28 17:34:29

補足

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

投稿日時 - 2005-02-28 21:38:47

ANo.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など必要です

投稿日時 - 2005-02-28 17:27:14

あなたにオススメの質問