Edit: Took out code because it wasn't really necessary.
And my brother in law said "It's printing 0's because you initialized them to 0, and you didn't set a value in goodEmpIds or totalPay for bad IDs. If goodEmpIds[ct] is zero then you know it's bad, and the ID would be in badEmpIds[ct] instead.".... but I can't seem to understand what he's saying :(
Thank you so much. You helped me solve my problem. After I posted that bit there I went and looked at it some more and did what you said. Tested with if(goodEmpId > 0) in the print method and it printed perfectly.
Dim Adapter As New OleDbDataAdapter
Dim Command As New OleDbCommand
Dim xFrom As String = dtpFrom.Value.ToString.Substring(0, dtpFrom.Value.ToString.IndexOf(" "))
Dim xTo As String = dtpTo.Value.ToString.Substring(0, dtpTo.Value.ToString.IndexOf(" "))
sqlQuery = MainQuery ...