QA@IT
«質問へ戻る

サンプルデータのリンクを追加しました

19
本文
 ききき\n
 くくく","fld3","fld4"
 
-実際に読み込んだ場合、n-1件目までのレコードのfld2のデータは取り込めていても、n件目のfld2が空になっていて、n+1件目はまた正常に取り込めているような状態です。
+エラーとなるサンプルデータを下記にアップロードしています
+[サンプルデータ](http://firestorage.jp/download/71ccbed12996eaf7cc47e2478195e4db066d18cf) (http://firestorage.jp/)
+
+サンプルデータを読み込むと L56~L63,L139~L141,L150~L151 のセルデータが欠損しています。
+また、L列以外のデータに欠損は確認できませんでした。
 
 以下、CSV取込のコードです
 ```ここに言語を入力

Excel VBA で CSVデータをADODB.RecordsetにてCopyFromRecordsetするとデータが欠損する

Windows 8.1(64bit) で MS-Office Professional Plus 2010 を使用しています。

CSVファイルのデータをEXCELに読み込む処理を作成しているのですが、
一部の項目が取り込めていないケースがあり、その原因及び回避方法を調査しているのですが、
何かご存知の方いらっしゃらないでしょうか。

CSVファイルには、1レコード内に複数のメモ項目が存在しており、1レコードが複数行にわたるケースが存在します。
例.
rec1:"1","fld2 あああ\n
いいい\n
ううう","fld3","fld4"
rec2:"2","fld2 かかか\n
ききき\n
くくく","fld3","fld4"

エラーとなるサンプルデータを下記にアップロードしています
サンプルデータ (http://firestorage.jp/)

サンプルデータを読み込むと L56~L63,L139~L141,L150~L151 のセルデータが欠損しています。
また、L列以外のデータに欠損は確認できませんでした。

以下、CSV取込のコードです

Public Sub readCsv()
    Dim dstSheet As Worksheet
    Dim objCn As ADODB.Connection
    Dim objRS As ADODB.Recordset

    On Error GoTo eh

    Set dstSheet = ThisWorkbook.Worksheets("Sheet1")
    Set objCn = New ADODB.Connection
    With objCn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Properties("Extended Properties") = "Text;HDR=NO"
        .Open "c:\temp\"
    End With

    Set objRS = New ADODB.Recordset
    Set objRS = objCn.Execute("SELECT * FROM data.csv")

    With dstSheet
        .UsedRange.ClearContents
        .Range("A1").CopyFromRecordset objRS
    End With

quit:
    If Not (objCn Is Nothing) Then objCn.Close
    Set objRS = Nothing
    Set objCn = Nothing
    Exit Sub

eh:
    MsgBox Err.Description, vbCritical
    If Not (objCn Is Nothing) Then objCn.Close
    Set objRS = Nothing
    Set objCn = Nothing
End Sub

以上、よろしくお願いします。

Windows 8.1(64bit) で MS-Office Professional Plus 2010 を使用しています。

CSVファイルのデータをEXCELに読み込む処理を作成しているのですが、
一部の項目が取り込めていないケースがあり、その原因及び回避方法を調査しているのですが、
何かご存知の方いらっしゃらないでしょうか。

CSVファイルには、1レコード内に複数のメモ項目が存在しており、1レコードが複数行にわたるケースが存在します。
例.
rec1:"1","fld2 あああ\n
いいい\n
ううう","fld3","fld4"
rec2:"2","fld2 かかか\n
ききき\n
くくく","fld3","fld4"

エラーとなるサンプルデータを下記にアップロードしています
[サンプルデータ](http://firestorage.jp/download/71ccbed12996eaf7cc47e2478195e4db066d18cf) (http://firestorage.jp/)

サンプルデータを読み込むと L56~L63,L139~L141,L150~L151 のセルデータが欠損しています。
また、L列以外のデータに欠損は確認できませんでした。

以下、CSV取込のコードです
```ここに言語を入力
Public Sub readCsv()
    Dim dstSheet As Worksheet
    Dim objCn As ADODB.Connection
    Dim objRS As ADODB.Recordset
    
    On Error GoTo eh
    
    Set dstSheet = ThisWorkbook.Worksheets("Sheet1")
    Set objCn = New ADODB.Connection
    With objCn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Properties("Extended Properties") = "Text;HDR=NO"
        .Open "c:\temp\"
    End With
  
    Set objRS = New ADODB.Recordset
    Set objRS = objCn.Execute("SELECT * FROM data.csv")
  
    With dstSheet
        .UsedRange.ClearContents
        .Range("A1").CopyFromRecordset objRS
    End With
  
quit:
    If Not (objCn Is Nothing) Then objCn.Close
    Set objRS = Nothing
    Set objCn = Nothing
    Exit Sub
    
eh:
    MsgBox Err.Description, vbCritical
    If Not (objCn Is Nothing) Then objCn.Close
    Set objRS = Nothing
    Set objCn = Nothing
End Sub
```

以上、よろしくお願いします。

19
本文
 以下、CSV取込のコードです
 ```ここに言語を入力
 Public Sub readCsv()
-    Const C_SQL = " SELECT * FROM "
     Dim dstSheet As Worksheet
     Dim objCn As ADODB.Connection
     Dim objRS As ADODB.Recordset

Excel VBA で CSVデータをADODB.RecordsetにてCopyFromRecordsetするとデータが欠損する

Windows 8.1(64bit) で MS-Office Professional Plus 2010 を使用しています。

CSVファイルのデータをEXCELに読み込む処理を作成しているのですが、
一部の項目が取り込めていないケースがあり、その原因及び回避方法を調査しているのですが、
何かご存知の方いらっしゃらないでしょうか。

CSVファイルには、1レコード内に複数のメモ項目が存在しており、1レコードが複数行にわたるケースが存在します。
例.
rec1:"1","fld2 あああ\n
いいい\n
ううう","fld3","fld4"
rec2:"2","fld2 かかか\n
ききき\n
くくく","fld3","fld4"

実際に読み込んだ場合、n-1件目までのレコードのfld2のデータは取り込めていても、n件目のfld2が空になっていて、n+1件目はまた正常に取り込めているような状態です。

以下、CSV取込のコードです

Public Sub readCsv()
    Dim dstSheet As Worksheet
    Dim objCn As ADODB.Connection
    Dim objRS As ADODB.Recordset

    On Error GoTo eh

    Set dstSheet = ThisWorkbook.Worksheets("Sheet1")
    Set objCn = New ADODB.Connection
    With objCn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Properties("Extended Properties") = "Text;HDR=NO"
        .Open "c:\temp\"
    End With

    Set objRS = New ADODB.Recordset
    Set objRS = objCn.Execute("SELECT * FROM data.csv")

    With dstSheet
        .UsedRange.ClearContents
        .Range("A1").CopyFromRecordset objRS
    End With

quit:
    If Not (objCn Is Nothing) Then objCn.Close
    Set objRS = Nothing
    Set objCn = Nothing
    Exit Sub

eh:
    MsgBox Err.Description, vbCritical
    If Not (objCn Is Nothing) Then objCn.Close
    Set objRS = Nothing
    Set objCn = Nothing
End Sub

以上、よろしくお願いします。

Windows 8.1(64bit) で MS-Office Professional Plus 2010 を使用しています。

CSVファイルのデータをEXCELに読み込む処理を作成しているのですが、
一部の項目が取り込めていないケースがあり、その原因及び回避方法を調査しているのですが、
何かご存知の方いらっしゃらないでしょうか。

CSVファイルには、1レコード内に複数のメモ項目が存在しており、1レコードが複数行にわたるケースが存在します。
例.
rec1:"1","fld2 あああ\n
いいい\n
ううう","fld3","fld4"
rec2:"2","fld2 かかか\n
ききき\n
くくく","fld3","fld4"

実際に読み込んだ場合、n-1件目までのレコードのfld2のデータは取り込めていても、n件目のfld2が空になっていて、n+1件目はまた正常に取り込めているような状態です。

以下、CSV取込のコードです
```ここに言語を入力
Public Sub readCsv()
    Dim dstSheet As Worksheet
    Dim objCn As ADODB.Connection
    Dim objRS As ADODB.Recordset
    
    On Error GoTo eh
    
    Set dstSheet = ThisWorkbook.Worksheets("Sheet1")
    Set objCn = New ADODB.Connection
    With objCn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Properties("Extended Properties") = "Text;HDR=NO"
        .Open "c:\temp\"
    End With
  
    Set objRS = New ADODB.Recordset
    Set objRS = objCn.Execute("SELECT * FROM data.csv")
  
    With dstSheet
        .UsedRange.ClearContents
        .Range("A1").CopyFromRecordset objRS
    End With
  
quit:
    If Not (objCn Is Nothing) Then objCn.Close
    Set objRS = Nothing
    Set objCn = Nothing
    Exit Sub
    
eh:
    MsgBox Err.Description, vbCritical
    If Not (objCn Is Nothing) Then objCn.Close
    Set objRS = Nothing
    Set objCn = Nothing
End Sub
```

以上、よろしくお願いします。

CSV取込のコードを、より実際に近いものに変更しました。

19
本文
 
 以下、CSV取込のコードです
 ```ここに言語を入力
-
+Public Sub readCsv()
+    Const C_SQL = " SELECT * FROM "
+    Dim dstSheet As Worksheet
+    Dim objCn As ADODB.Connection
+    Dim objRS As ADODB.Recordset
+    
+    On Error GoTo eh
+    
+    Set dstSheet = ThisWorkbook.Worksheets("Sheet1")
     Set objCn = New ADODB.Connection
     With objCn
         .Provider = "Microsoft.Jet.OLEDB.4.0"
-        .Properties("Extended Properties") = "text; HDR=NO; FMT=Delimited;"
+        .Properties("Extended Properties") = "Text;HDR=NO"
         .Open "c:\temp\"
     End With
-    
+  
     Set objRS = New ADODB.Recordset
-    Set objRS = objCn.Execute("select * from csvfile.csv")
+    Set objRS = objCn.Execute("SELECT * FROM data.csv")
   
     With dstSheet
         .UsedRange.ClearContents
         .Range("A1").CopyFromRecordset objRS
     End With
+  
+quit:
+    If Not (objCn Is Nothing) Then objCn.Close
+    Set objRS = Nothing
+    Set objCn = Nothing
+    Exit Sub
+    
+eh:
+    MsgBox Err.Description, vbCritical
+    If Not (objCn Is Nothing) Then objCn.Close
+    Set objRS = Nothing
+    Set objCn = Nothing
+End Sub
 ```
 
 以上、よろしくお願いします。

Excel VBA で CSVデータをADODB.RecordsetにてCopyFromRecordsetするとデータが欠損する

Windows 8.1(64bit) で MS-Office Professional Plus 2010 を使用しています。

CSVファイルのデータをEXCELに読み込む処理を作成しているのですが、
一部の項目が取り込めていないケースがあり、その原因及び回避方法を調査しているのですが、
何かご存知の方いらっしゃらないでしょうか。

CSVファイルには、1レコード内に複数のメモ項目が存在しており、1レコードが複数行にわたるケースが存在します。
例.
rec1:"1","fld2 あああ\n
いいい\n
ううう","fld3","fld4"
rec2:"2","fld2 かかか\n
ききき\n
くくく","fld3","fld4"

実際に読み込んだ場合、n-1件目までのレコードのfld2のデータは取り込めていても、n件目のfld2が空になっていて、n+1件目はまた正常に取り込めているような状態です。

以下、CSV取込のコードです

Public Sub readCsv()
    Const C_SQL = " SELECT * FROM "
    Dim dstSheet As Worksheet
    Dim objCn As ADODB.Connection
    Dim objRS As ADODB.Recordset

    On Error GoTo eh

    Set dstSheet = ThisWorkbook.Worksheets("Sheet1")
    Set objCn = New ADODB.Connection
    With objCn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Properties("Extended Properties") = "Text;HDR=NO"
        .Open "c:\temp\"
    End With

    Set objRS = New ADODB.Recordset
    Set objRS = objCn.Execute("SELECT * FROM data.csv")

    With dstSheet
        .UsedRange.ClearContents
        .Range("A1").CopyFromRecordset objRS
    End With

quit:
    If Not (objCn Is Nothing) Then objCn.Close
    Set objRS = Nothing
    Set objCn = Nothing
    Exit Sub

eh:
    MsgBox Err.Description, vbCritical
    If Not (objCn Is Nothing) Then objCn.Close
    Set objRS = Nothing
    Set objCn = Nothing
End Sub

以上、よろしくお願いします。

Windows 8.1(64bit) で MS-Office Professional Plus 2010 を使用しています。

CSVファイルのデータをEXCELに読み込む処理を作成しているのですが、
一部の項目が取り込めていないケースがあり、その原因及び回避方法を調査しているのですが、
何かご存知の方いらっしゃらないでしょうか。

CSVファイルには、1レコード内に複数のメモ項目が存在しており、1レコードが複数行にわたるケースが存在します。
例.
rec1:"1","fld2 あああ\n
いいい\n
ううう","fld3","fld4"
rec2:"2","fld2 かかか\n
ききき\n
くくく","fld3","fld4"

実際に読み込んだ場合、n-1件目までのレコードのfld2のデータは取り込めていても、n件目のfld2が空になっていて、n+1件目はまた正常に取り込めているような状態です。

以下、CSV取込のコードです
```ここに言語を入力
Public Sub readCsv()
    Const C_SQL = " SELECT * FROM "
    Dim dstSheet As Worksheet
    Dim objCn As ADODB.Connection
    Dim objRS As ADODB.Recordset
    
    On Error GoTo eh
    
    Set dstSheet = ThisWorkbook.Worksheets("Sheet1")
    Set objCn = New ADODB.Connection
    With objCn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Properties("Extended Properties") = "Text;HDR=NO"
        .Open "c:\temp\"
    End With
  
    Set objRS = New ADODB.Recordset
    Set objRS = objCn.Execute("SELECT * FROM data.csv")
  
    With dstSheet
        .UsedRange.ClearContents
        .Range("A1").CopyFromRecordset objRS
    End With
  
quit:
    If Not (objCn Is Nothing) Then objCn.Close
    Set objRS = Nothing
    Set objCn = Nothing
    Exit Sub
    
eh:
    MsgBox Err.Description, vbCritical
    If Not (objCn Is Nothing) Then objCn.Close
    Set objRS = Nothing
    Set objCn = Nothing
End Sub
```

以上、よろしくお願いします。

質問を投稿

Excel VBA で CSVデータをADODB.RecordsetにてCopyFromRecordsetするとデータが欠損する

Windows 8.1(64bit) で MS-Office Professional Plus 2010 を使用しています。

CSVファイルのデータをEXCELに読み込む処理を作成しているのですが、
一部の項目が取り込めていないケースがあり、その原因及び回避方法を調査しているのですが、
何かご存知の方いらっしゃらないでしょうか。

CSVファイルには、1レコード内に複数のメモ項目が存在しており、1レコードが複数行にわたるケースが存在します。
例.
rec1:"1","fld2 あああ\n
いいい\n
ううう","fld3","fld4"
rec2:"2","fld2 かかか\n
ききき\n
くくく","fld3","fld4"

実際に読み込んだ場合、n-1件目までのレコードのfld2のデータは取り込めていても、n件目のfld2が空になっていて、n+1件目はまた正常に取り込めているような状態です。

以下、CSV取込のコードです


    Set objCn = New ADODB.Connection
    With objCn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Properties("Extended Properties") = "text; HDR=NO; FMT=Delimited;"
        .Open "c:\temp\"
    End With

    Set objRS = New ADODB.Recordset
    Set objRS = objCn.Execute("select * from csvfile.csv")

    With dstSheet
        .UsedRange.ClearContents
        .Range("A1").CopyFromRecordset objRS
    End With

以上、よろしくお願いします。

Windows 8.1(64bit) で MS-Office Professional Plus 2010 を使用しています。

CSVファイルのデータをEXCELに読み込む処理を作成しているのですが、
一部の項目が取り込めていないケースがあり、その原因及び回避方法を調査しているのですが、
何かご存知の方いらっしゃらないでしょうか。

CSVファイルには、1レコード内に複数のメモ項目が存在しており、1レコードが複数行にわたるケースが存在します。
例.
rec1:"1","fld2 あああ\n
いいい\n
ううう","fld3","fld4"
rec2:"2","fld2 かかか\n
ききき\n
くくく","fld3","fld4"

実際に読み込んだ場合、n-1件目までのレコードのfld2のデータは取り込めていても、n件目のfld2が空になっていて、n+1件目はまた正常に取り込めているような状態です。

以下、CSV取込のコードです
```ここに言語を入力

    Set objCn = New ADODB.Connection
    With objCn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Properties("Extended Properties") = "text; HDR=NO; FMT=Delimited;"
        .Open "c:\temp\"
    End With
    
    Set objRS = New ADODB.Recordset
    Set objRS = objCn.Execute("select * from csvfile.csv")
  
    With dstSheet
        .UsedRange.ClearContents
        .Range("A1").CopyFromRecordset objRS
    End With
```

以上、よろしくお願いします。