Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1990 / 9994 ←次へ | 前へ→

【11284】Re:コマンドボタンを押下すると、指定ファルダ下にあるtxtをインポートしたい。
質問  cocoa  - 09/12/10(木) 14:30 -

引用なし
パスワード
   >▼小僧様
Option Compare Database
Option Explicit

Private Sub EventLogAccess_Click()
Dim txtData As Variant, FNo As Long, arrData, i As Integer
Dim Con As New ADODB.Connection, Rec As New ADODB.Recordset
Dim strFilePath As String, returnValue

DoCmd.RunSQL "Delete From INPUTDATA"
  '[ファイルを開く]ダイアログボックスを表示
  WizHook.Key = 51488399
  returnValue = WizHook.GetFileName( _
             0, "", "", "", strFilePath, "", _
             "CSVファイル (*.csv)|*.csv", _
             0, 0, 0, True _
             )
  WizHook.Key = 0
   
  '[キャンセル]がクリックされた場合は即終了
  If returnValue <> 0 Then
    Exit Sub
  End If
 
Set Con = CurrentProject.Connection
Rec.Open "INPUTDATA", Con, adOpenDynamic, adLockOptimistic
 
FNo = FreeFile
Open strFilePath For Input As #FNo
  'ファイルの1行目の項目名部分を読み込む(何も処理しない)
  
  For i = 1 To 8
    Line Input #FNo, txtData
  Next i
   
  On Error GoTo ErrHndl
  'エラーが発生した場合にデータのインポートをなかったこと(ロールバック)
  'にするためにトランザクション処理として実行
  Con.BeginTrans
    '実際のデータ部分(2行目)からの処理
    Do While Not EOF(FNo)
      Line Input #FNo, txtData
      arrData = Split(txtData, ",")
        If arrData(0) = " " Then
          Exit Do
        End If
        Rec.AddNew
          '引用符を削除してからフィールドに値を代入する
          

          Rec("日付") = Split(arrData(2), " ")(0)
          Rec("時間") = Split(arrData(2), " ")(1)
          Rec("ComputerName") = arrData(4)
          Rec("Description1") = Split(arrData(7), "  ")(0)
          Rec("Description2") = Split(arrData(7), "  ")(1)

          
        Rec.Update

    Loop
     
  Con.CommitTrans
   
Close #FNo
DoCmd.OpenForm "TimeForm", acPreview
Exit Sub
 
ErrHndl:
  Close #FNo
  Con.RollbackTrans
  MsgBox "以下のエラーが発生したためロールバックしました。" & vbCrLf & _
      Err.Description, vbCritical


End Sub

上記のようにしたところ、yyyymmdd.csvのデータを編集しなくても、INPUTDATAテーブルへインポートされました。

しかしインポートされたデータが""で囲まれてしまったのです。
例:フィールド1 フィールド2 フィールド3・・・
  "2009/12/10  12:00:00"   "ComputerName"

のような感じで、Split関数で分離させたものは、片方ずつに"が付き。
Split関数を使用していないものは両端が""で囲まれておりました。
そのため、正常に時間を取得させることができなくなったのです。


Line Input #FNo, txtData←この時に全てのデータが""で囲まれていました。

  For i = 1 To 8
    Line Input #FNo, txtData
  Next i
  ↑この文を入れると、そうなるのでしょうか?

ちなみに小僧様より戴いた、サンプルではFor文の箇所を
1 to 8にしてもなぜか、インデックスが有効範囲にありませんと
エラーが出ます。

Do while not
Do Until の部分が違うからでしょうか?

一から勉強していては今回の業務には間に合いそうにもありませんので、
どうかご協力をお願い致します。
もちろん小僧様のお時間が許すときで結構ですので、ご返信の程
お願い致します。

1,265 hits

【11255】コマンドボタンを押下すると、指定ファルダ下にあるtxtをインポートしたい。 cocoa 09/12/4(金) 16:13 質問[未読]
【11256】Re:コマンドボタンを押下すると、指定ファルダ下に... 小僧 09/12/4(金) 19:35 発言[未読]
【11257】Re:コマンドボタンを押下すると、指定ファルダ下に... cocoa 09/12/7(月) 11:16 発言[未読]
【11258】Re:コマンドボタンを押下すると、指定ファルダ下に... cocoa 09/12/7(月) 14:23 質問[未読]
【11259】Re:コマンドボタンを押下すると、指定ファルダ下に... 小僧 09/12/7(月) 15:17 回答[未読]
【11261】Re:コマンドボタンを押下すると、指定ファルダ下に... cocoa 09/12/7(月) 16:25 質問[未読]
【11262】Re:コマンドボタンを押下すると、指定ファルダ下に... 小僧 09/12/7(月) 16:42 回答[未読]
【11263】Re:コマンドボタンを押下すると、指定ファルダ下に... cocoa 09/12/7(月) 16:53 質問[未読]
【11264】Re:コマンドボタンを押下すると、指定ファルダ下に... cocoa 09/12/7(月) 17:11 質問[未読]
【11265】Re:コマンドボタンを押下すると、指定ファルダ下に... 小僧 09/12/7(月) 17:27 回答[未読]
【11271】Re:コマンドボタンを押下すると、指定ファルダ下に... cocoa 09/12/8(火) 15:11 質問[未読]
【11272】Re:コマンドボタンを押下すると、指定ファルダ下に... 小僧 09/12/8(火) 18:57 発言[未読]
【11273】Re:コマンドボタンを押下すると、指定ファルダ下に... cocoa 09/12/9(水) 10:09 質問[未読]
【11274】Re:コマンドボタンを押下すると、指定ファルダ下に... 小僧 09/12/9(水) 11:09 回答[未読]
【11275】Re:コマンドボタンを押下すると、指定ファルダ下に... cocoa 09/12/9(水) 14:05 質問[未読]
【11276】Re:コマンドボタンを押下すると、指定ファルダ下に... 小僧 09/12/9(水) 19:22 発言[未読]
【11278】Re:コマンドボタンを押下すると、指定ファルダ下に... cocoa 09/12/10(木) 9:19 質問[未読]
【11279】Re:コマンドボタンを押下すると、指定ファルダ下に... 小僧 09/12/10(木) 9:45 回答[未読]
【11281】Re:コマンドボタンを押下すると、指定ファルダ下に... cocoa 09/12/10(木) 10:19 質問[未読]
【11282】Re:コマンドボタンを押下すると、指定ファルダ下に... 小僧 09/12/10(木) 12:46 回答[未読]
【11283】Re:コマンドボタンを押下すると、指定ファルダ下に... cocoa 09/12/10(木) 13:17 質問[未読]
【11284】Re:コマンドボタンを押下すると、指定ファルダ下に... cocoa 09/12/10(木) 14:30 質問[未読]
【11285】Re:コマンドボタンを押下すると、指定ファルダ下に... cocoa 09/12/10(木) 14:51 質問[未読]
【11286】Re:コマンドボタンを押下すると、指定ファルダ下に... cocoa 09/12/10(木) 15:13 質問[未読]
【11289】Re:コマンドボタンを押下すると、指定ファルダ下に... 小僧 09/12/11(金) 11:00 回答[未読]
【11290】Re:コマンドボタンを押下すると、指定ファルダ下に... cocoa 09/12/11(金) 11:46 お礼[未読]
【11292】Re:コマンドボタンを押下すると、指定ファルダ下に... 小僧 09/12/11(金) 15:23 発言[未読]
【11296】Re:コマンドボタンを押下すると、指定ファルダ下に... cocoa 09/12/14(月) 14:40 お礼[未読]
【11260】Re:コマンドボタンを押下すると、指定ファルダ下に... Nao 09/12/7(月) 15:19 回答[未読]
【11291】Re:コマンドボタンを押下すると、指定ファルダ下に... cocoa 09/12/11(金) 11:48 お礼[未読]

1990 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078196
(SS)C-BOARD v3.8 is Free