简体   繁体   中英

From ms access table how to paste required data form array (getrows) to excel specific ranges using vba

My below code shows no error, when run, but I don't know how to extract required/particular field values into my excel sheet.

Sub getdatafromaccesstoanarray()

    Dim cn      As Object   'Connection
    Dim rs      As Object   'Recordset
    Dim vAry()  As Variant  'Variant Array
    Dim dbPath  As String   'Database Path
    Dim dbName  As String   'Database Name
    Dim txt     As String

    Set cn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")

    dbPath = ThisWorkbook.Path & "\"
    dbName = "NewDB.accdb"

    cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
            "Data Source=" & dbPath & dbName & ";"

    rs.Open "SELECT * FROM BILLDETAILS WHERE BILLDETAILS.SN_AUTO =100;", cn

    vAry = rs.GetRows()

    'now when the data is copied to my array how can i paste specific values from this data to
    'cells in my excel sheet
    'like
    'on active sheet
    '[a1] = vAry(value1)
    '[a2] = vAry(value3)
    '[a3] = vAry(value8)

    'and other values like wise


    rs.Close
    cn.Close

    Set rs = Nothing
    Set cn = Nothing
End Sub

If there any other way to do this then please let me know. Thanks!

If you just want to copy the recordset into the sheet you can use the CopyFromRecordset method to dump the table into the sheet by specifying the top left corner:

 Range("a1").copyfromrecordset rs

If you want to put specific fields in specific positions you can loop

Do While not rs.eof
   range("a2")=rs(0)
   range("b2")=rs(1)
    'etc....
  rs.movenext
Loop

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM