I am trying to import data into Excel from an Access table. I am getting a syntax error This error comes up when I run the line: Select [Time], [Tank], FROM "UnitOneRouting", WHERE [Date] = " & RpDate & ORDER BY Tank, Time", cn, adOpenStatic, adLockOptimistic, adCmdTable
In the Access Table there are four columns (in order) Date, Time, Tank, Comments. I only want to import two columns, Time and Tank but in the order Tank, Time; and I want to import them based on a date that is given in the Excel sheet. Thanks
How can I rearrange the following section to open the table, select the columns (based on date) and import the data.
x
With rs
' open the recordset
.Open "UnitOneRouting", cn, adOpenStatic, adLockOptimistic, adCmdTable
' filter rows based on date
.Select [Time], [Tank], FROM "UnitOneRouting", WHERE [Date] = " & RpDate & ORDER BY Tank, Time", cn, adOpenStatic, adLockOptimistic, adCmdTable
rs.Open , TargetRange
End With
CODE STARTS HERE
Sub ADOImportFromAccessTable()
Dim DBFullName As String
Dim TableName As String
Dim TargetRange As Range
Dim RpDate As Range
DBFullName = "U:Night SupProduction Report 2003 New Ver 5-28-10_KA.mdb"
TableName = "UnitOneRouting"
Set TargetRange = Range("C5")
Set RpDate = Range("B2").Cells
Dim cn As ADODB.Connection, rs As ADODB.Recordset, intColIndex As Integer
Set TargetRange = TargetRange.Cells(1, 1)
' open the database
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
"U:Night SupProduction Report 2003 New Ver 5-28-10_KA.mdb" & ";"
Set rs = New ADODB.Recordset
With rs
' open the recordset
.Open "UnitOneRouting", cn, adOpenStatic, adLockOptimistic, adCmdTable
' filter rows based on date
.Select [Time], [Tank], FROM "UnitOneRouting", WHERE [Date] = " & RpDate & ORDER BY Tank, Time", cn, adOpenStatic, adLockOptimistic, adCmdTable
rs.Open , TargetRange
End With
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
Advertisement
Answer
The issue is the second and third .Open command. adjust your with statement to:
With rs
.Open "SELECT Time, Tank FROM " & TableName & " WHERE [Date] = " & RpDate & _
"ORDER BY Tank, Time", cn, adOpenStatic, adLockOptimistic, adCmdTable
' all records
' cn.CursorLocation = adUseClient
' filter rows based on date
End With