I was not able to get your query to work, but I do have a work around of sorts.
So the idea is to open a recordset on the dbf file and use an append query to add the records to an Access table.
Code:
Public Sub FromDB_IV()
Dim d As DAO.Database
Dim rsSource As DAO.Recordset
Dim sSQL As String
Set d = CurrentDb
'open the dbf source file
sSQL = "SELECT billid, bName,bCity,bZip"
sSQL = sSQL & " FROM Client" '<=name of the dbf file
sSQL = sSQL & " IN '' [dBASE IV; Database=F:\MyTest\] ;"
' Debug.Print sSQL
'my Client dbf file has ~ 20 fields
'I only selected 4 fields, all text fields.
' Note: Could not get a WHERE clause to work.
Set rsSource = d.OpenRecordset(sSQL)
If Not (rsSource.BOF And rsSource.EOF) Then
rsSource.MoveLast
rsSource.MoveFirst
'code to insert each record from dbf file into Access table
Do While Not rsSource.EOF
'build the SQL append query
sSQL = "INSERT INTO Client_Acc (billid, bName, bCity, bZip)"
sSQL = sSQL & " VALUES ('" & rsSource("billid") & "', '" & rsSource("bName") & "', '" & rsSource("bCity") & "', '" & rsSource("bZip") & "')"
' Debug.Print sSQL
d.Execute sSQL, dbFailOnError
rsSource.MoveNext
Loop
End If
MsgBox "Done"
rsSource.Close
Set rsSource = Nothing
Set d = Nothing
End Sub
Append to a temp table, then add the records you want (the where clause) to the "real" table.
Note that there is no error handling code.