Access Records via SQL to Excel Workbook:   Return to List

Sub intro()
    Dim conn As New Connection
    Dim rec As New Recordset
    Dim ws As Worksheet
    Dim sql$, i&
    Set ws = ThisWorkbook.Worksheets("intro")
    conn.Open "Provider=microsoft.jet.oledb.4.0;" + _
        "Data Source=" + ThisWorkbook.Path + "\nwind.mdb;"
    sql = "SELECT LastName, FirstName " & _
        "FROM employees ORDER BY LastName, FirstName"
    rec.Open sql, conn
    While Not rec.EOF
        i = i + 1
        ws.[a1].Cells(i) = rec!LastName + ", " + rec!FirstName
        rec.MoveNext
    Wend
    rec.Close: conn.Close
End Sub

Sub rec_fields()
    Dim conn As New Connection
    Dim rec As New Recordset
    Dim f As Field
    Dim ws As Worksheet
    Dim i&
    Set ws = ThisWorkbook.Worksheets("fields")
    conn.Open "Provider=microsoft.jet.oledb.4.0;" + _
        "Data Source=" + ThisWorkbook.Path + "\nwind.mdb;"
    rec.Open "employees", conn
    For Each f In rec.Fields
        i = i + 1
        ws.[a1].Cells(i) = f.Name
        ws.[b1].Cells(i) = f.Type
        ws.[c1].Cells(i) = TypeName(f.Value)
    Next
    rec.Close: conn.Close
End Sub

Sub command_parameters()
    Dim conn As New Connection
    Dim rec As New Recordset
    Dim comm As New Command
    Dim ws As Worksheet
    Dim i&, countryname$
    Set ws = ThisWorkbook.Worksheets("command")
    conn.Open "Provider=microsoft.jet.oledb.4.0;" + _
        "Data Source=" + ThisWorkbook.Path + "\nwind.mdb;"
    Set comm.ActiveConnection = conn
    comm.CommandText = "SELECT companyname FROM customers WHERE country = ?"
    countryname = InputBox("Please type in a country name (i.e. 'germany').")
    comm.Parameters(0) = countryname
    rec.Open comm
    ws.[a1].CopyFromRecordset rec
    rec.Close: conn.Close
End Sub



Note to Webmaster