RE:recordset vacio con 1 registro
MSDN Dice:
La propiedad Recordcount del Objeto ADO devuelve -1 cuando ADO no puede determinar el número de registros. Al leer la propiedad RecordCount de un objeto Recordset cerrado, se produce un error.
MSDN También dice:
Si se abre un objeto Recordset que no contiene registros, las propiedades BOF y EOF se establecen a True y el valor de la propiedad RecordCount del objeto Recordset es cero. Cuando se abre un objeto Recordset que contiene al menos un registro, el primer registro es el registro actual y las propiedades BOF y EOF tienen el valor False.
Fijate que son dos valores distintos que menciona Microsoft asume la propiedad RecordCount, pero de lo que si no hay duda, es que encontrándose Eof y Bof como False, estas situado sobre un registro, que podrá no tener datos, pero es un registro.
Deberías verificar la tabla desde Access.
La solución, utilizar trs el open , la propiedad EOF.