thanks for the responses.
This is all of my code, pretty much not much more than what i posted.
Dim InvRS As DAO.Recordset
strsql = "SELECT scripts.InvoiceID, scripts.PaymentID, scripts.RcvdAmount, scripts.WrittenOff, scripts.OnHold, scripts.ScriptID from Scripts WHERE (((scripts.InvoiceID)=21) AND ((scripts.PaymentID) Is Null) AND ((scripts.WrittenOff)=0) AND ((scripts.OnHold)=0))"
Set InvRS = CurrentDb.OpenRecordset(strsql)
What i meant by "access returns 4"
I took the sql string and put it into access query as well as into phpmyadmin
Both return the 4 records.
It is only when in a dao recordset that it doesnt return correctly.
When this was a linked table, via access not odbc mysql it was working fine.