【问题标题】:ADODB COPY RECORDS FROM CSV TO XLSMADODB 将记录从 CSV 复制到 XLSM
【发布时间】:2017-12-19 12:55:32
【问题描述】:

您好,我正在尝试使用 adodb 从 csv 文件中获取一些数据。尝试将记录复制到当前工作表我可以从源文件复制标题但不能复制下面的记录

我们将不胜感激。

    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

【问题讨论】:

    标签: vba csv adodb


    【解决方案1】:

    想通了。抱歉,可能还有其他代码一直在处理,但希望有一天可以帮助其他人。

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-14
      • 2015-01-13
      • 1970-01-01
      • 1970-01-01
      • 2014-10-22
      • 2018-12-04
      • 1970-01-01
      相关资源
      最近更新 更多