代码之家  ›  专栏  ›  技术社区  ›  barciewicz

通过VBA打印访问表内容

  •  0
  • barciewicz  · 技术社区  · 6 年前

    我想通过Excel VBA读取访问表,并打印每行和每列的内容。

    到目前为止,我有以下代码,但它只打印第一行的内容。如何使其打印所有行?

    我的测试表有两列(因此 For i= 0 to 1 )和4行,但实际上我可能有可变的列和行数,所以代码最好能涵盖这一点。

    Sub get_column()
    
    Dim cn As Object
    Dim rs As Object
    Dim strSql As String
    Dim strConnection As String
    Dim i As Long
    
    Set cn = CreateObject("ADODB.Connection")
    strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
        "Data Source=M:\test_database.accdb;" '& _
    '"User Id=admin;Password=admin"
    strSql = "SELECT Table1.CC_Number, Table1.Region FROM Table1;"
    cn.Open strConnection
    Set rs = cn.Execute(strSql)
    For i = 0 To 1
        Debug.Print rs.Fields(i)
    Next i
    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
    
    End Sub
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Erik A    6 年前

    您可以轻松地循环所有字段,并使用 .MoveNext .EOF 要打印所有行:

    Set rs = cn.Execute(strSql)
    Dim fld As Object
    Do While Not rs.EOF
        For Each fld In rs.Fields
            Debug.Print fld.Name; vbTab; fld.Value
        Next
        Debug.Print "" 'Blank line between records
        rs.MoveNext
    Loop
    rs.Close