Access VBA質問箱 IV

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

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


443 / 2272 ツリー ←次へ | 前へ→

【11681】csvファイルのインポートがおかしい momo 10/6/10(木) 11:09 質問[未読]
【11682】Re:csvファイルのインポートがおかしい 247b 10/6/10(木) 13:40 発言[未読]
【11684】Re:csvファイルのインポートがおかしい momo 10/6/10(木) 13:48 質問[未読]
【11685】Re:csvファイルのインポートがおかしい momo 10/6/10(木) 14:03 質問[未読]
【11686】Re:csvファイルのインポートがおかしい momo 10/6/10(木) 14:16 お礼[未読]

【11681】csvファイルのインポートがおかしい
質問  momo  - 10/6/10(木) 11:09 -

引用なし
パスワード
   お世話になります。

プログラムを実行すると、一行のみインポートされます。
対象のcsvファイルの中身は1行以上あります。
内容は、列名はなく、一行目から実データになります。
▼csv中身
TEST部\TEST室,admin,20100610,A000001,電子帳票名.txt




TEST部\TEST室,admin,20100610,A000100,電子帳票名.txt

▼プログラム
Option Compare Database
Option Explicit

Private Sub EventLogAccess_Click()
Dim txtData As String
Dim FNo As Long
Dim arrData As Variant
Dim i As Integer
Dim Con As New ADODB.Connection
Dim Rec As New ADODB.Recordset
Dim strFilePath As String
Dim returnValue As Long
 
  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
 
  Con.Execute "Delete From 電子帳票ACCESS実績"
  Rec.Open "電子帳票ACCESS実績", Con, adOpenDynamic, adLockOptimistic

  FNo = FreeFile
 
  Open strFilePath For Input As #FNo
 
  On Error GoTo ErrHndl
 
  Con.BeginTrans
  
    Do Until EOF(FNo)
      Line Input #FNo, txtData
      arrData = Split(txtData, ",")

        Rec.AddNew
        
        Rec("部門") = arrData(0)
        Rec("使用者") = arrData(1)
        Rec("日付") = arrData(2)
        Rec("帳票コード") = arrData(3)
        Rec("帳票名") = arrData(4)
  
        Rec.Update
    Loop
 
  Close #FNo
  Rec.Close
  Set Rec = Nothing
 
  Con.CommitTrans
  Con.Close
  Set Con = Nothing
 
  Exit Sub

ErrHndl:
 
  Close #FNo
  Con.RollbackTrans
  Con.Close
  Set Con = Nothing
 
  MsgBox "以下のエラーが発生したためロールバックしました。" & vbCrLf & _
      Err.Description, vbCritical
   
End Sub


▼実行結果
TEST部\TEST室,admin,20100610,A000001,電子帳票名.txtTEST部
↑のように、帳票名の後ろになぜか、次行の部門の一部が追加された状態で
一行だけインポートされます。

後、電子帳票名.txtの後ろに追加されるTEST部の文字の大きさが変です。
例えばカーソルをずらすと、漢字の半分のところにカーソルがきます。
通常は、一文字づつカーソルがずれていくと思うのですが、変です。

説明がへたくそで申し訳ないですが、宜しくお願い致します。

【11682】Re:csvファイルのインポートがおかしい
発言  247b  - 10/6/10(木) 13:40 -

引用なし
パスワード
   こんにちわ。

見た感じでは、改行コードがWindowsのコードと合致してないせいのように見えます。
テキストファイルの生成はWindowsで行っているのでしょうか。
UNIXで作成したテキストだったりすると、Windowsでは改行コードを認識できず、このような現象になることがあります。

【11684】Re:csvファイルのインポートがおかしい
質問  momo  - 10/6/10(木) 13:48 -

引用なし
パスワード
   ▼247b様
ご回答ありがとうございます。

>テキストファイルの生成はWindowsで行っているのでしょうか。
生成に関しては、Javaで行っております。なので、Windowsになるのでしょうか。

【11685】Re:csvファイルのインポートがおかしい
質問  momo  - 10/6/10(木) 14:03 -

引用なし
パスワード
   お世話になります。

>テキストファイルの生成はWindowsで行っているのでしょうか。
>UNIXで作成したテキストだったりすると、Windowsでは改行コードを認識できず、このような現象になることがあります。

Java 改行コードで調べたところ、"\n"はUNIXで"\r\n"がWindowsの改行コードの意らしく、私は前者である"\n"を使用しておりました。

なるほど!!早速プログラム中の"\n"を"\r\n"へ変更後実行し、生成されたcsvファイルをインポートプログラムで取込んで見たところ!!!

無理でした。先ほど同じく、1行しかインポートされておりません。
ちなみに、プログラムを使わずに手動でインポートするときれいいにインポートされます。
改行コードを変更する前も手動であればきれいにインポートされます。

宜しくお願い致します。

【11686】Re:csvファイルのインポートがおかしい
お礼  momo  - 10/6/10(木) 14:16 -

引用なし
パスワード
   お世話になります。

取込むcsvファイルを間違えておりました!!
改行コード変更後のファイルでは首記現象は起こりませんでした。

解決致しました。

ありがとうございました。

443 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078193
(SS)C-BOARD v3.8 is Free