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 
-    . 
-    . 
-    . 
-   
-