copachay,me parece que el problema radica en esta parte de tu codigo:
If Reco.RecordCount <> 0 Then
List4.Clear
eh tenido problemas muchas veces con esto, a pesar que tenia registros, pues el recordcount me marcaba como si no hubiese registros.
porque no haces esto:
en ves de eso pones:
if not Reco.eof then
List4.Clear
.
.
.