2017-07-14 1 views
0

こんにちは、私はadodbを使ってcsvファイルからデータを取得しようとしています。現在のワークシートにレコードをコピーしようとしていますが、ヘッダーはコピーできますが、以下のレコードはソースファイルからコピーできません。ADODBのコピーからCSVをXLSMにコピー

本当にありがとうございます。

Public Sub ConnectExcel() 

Dim cn As ADODB.Connection 
Dim rs As ADODB.Recordset 
Dim str As String 
Dim recCount As Long 
Dim fc As Long 
Dim ic As Integer 
Dim ir As Integer 


Set cn = New ADODB.Connection 
Set rs = New ADODB.Recordset 


'***********CONNECTION TO THE FILE********************' 
With cn 
.Provider = "Microsoft.ACE.OLEDB.12.0" 
.ConnectionString = "Data Source=C:\tmp\;Extended Properties='text;HDR=YES;FMT=Delimited';" 
.Open .ConnectionString 
End With 


'***********READING RECORDS********************' 
str = "SELECT TOP 10 * FROM [prod.csv] WHERE [Netting Agreement Type]='GROSS'" 

rs.Open str, cn 
rs.MoveFirst 
While Not rs.EOF 
    recCount = recCount + 1 
    rs.MoveNext 
Wend 


'***********COPY RECORDS********************' 
fc = rs.Fields.Count 

For ic = 1 To fc 
    ThisWorkbook.Worksheets("Sheet1").Cells(1, ic).Value = rs.Fields(ic - 1).Name 
Next 
ThisWorkbook.Worksheets("Sheet1").Cells(2, 1).CopyFromRecordset rs 



'ThisWorkbook.Worksheets("Sheet1").Cells(1, 1).CopyFromRecordset rs 
'Print rs.RecordCount 


'***********CLOSE CONNECTIONS AND RELESE REFERENCES********************' 
rs.Close 
cn.Close 
Set rs = Nothing 
Set cn = Nothing 

End Sub 

答えて

0

これがわかりました。申し訳ありませんが、それに取り組んでいるように追加コードがあるかもしれないが、うまくいけば、誰か他の誰かを助けるかもしれない

Public Sub ConnectExcel() 

Dim cn As ADODB.Connection 
Dim rs As ADODB.Recordset 
Dim str As String 
Dim str2 As String 
Dim str3 As String 
Dim imm As Variant 
Dim cem As Variant 
Dim ic As Integer 

'***********CONNECTION TO THE FILE********************' 

Set cn = New ADODB.Connection 
Set rs = New ADODB.Recordset 

With cn 
.Provider = "Microsoft.ACE.OLEDB.12.0" 
.ConnectionString = "Data Source=C:\tmp\;Extended Properties='text;HDR=YES;FMT=Delimited';" 
.Open .ConnectionString 
End With 


'***********READING RECORDS FROM CSV AND STORING THEM TO VARIANTS********************' 
'str = "SELECT TOP 10 I.*, C.* FROM [hkmaimm.csv] I INNER JOIN [hkmacem.csv] C ON I.[Counterparty ID] = C.[Counterparty ID] AND I.[Saracen] = C.[Saracen]" 

'***********READ AND STORE IMM CONTEXT********************' 
'str1 = "SELECT TOP 500 * FROM [hkmaimm.csv]" 
str1 = "SELECT * FROM [hkmaimm.csv]" 
rs.Open str1, cn 
imm = rs.GetRows() 
fc = rs.Fields.Count 
For ic = 1 To fc 
    ThisWorkbook.Worksheets("Sheet2").Cells(1, ic).value = rs.Fields(ic - 1).Name 
Next 
fc = 0 
rs.Close 

'***********READ AND STORE CEM CONTEXT********************' 
'str2 = "SELECT TOP 500 * FROM [hkmacem.csv]" 
str2 = "SELECT * FROM [hkmacem.csv]" 
rs.Open str2, cn 
cem = rs.GetRows() 
fc = rs.Fields.Count 
For ic = 1 To fc 
    ThisWorkbook.Worksheets("Sheet3").Cells(1, ic).value = rs.Fields(ic - 1).Name 
Next 
rs.Close 

Call CalculateLGDchange(imm, cem) 


'***********COPY RECORDS********************' 
' 
'rs.MoveFirst 
'RowCount = 2 
'While Not rs.EOF 
' For col = 1 To rs.Fields.Count 
'  ThisWorkbook.Worksheets("Sheet1").Cells(RowCount, col) = rs(col - 1) 
' Next col 
' RowCount = RowCount + 1 
' rs.MoveNext 
'Wend 
' 


'***********CLOSE CONNECTIONS AND RELEASE REFERENCES********************' 

cn.Close 
Set rs = Nothing 
Set cn = Nothing 

End Sub 
関連する問題