Hola
 
   Se me ocurre que puedes crear un RecordSet con el total registros (Reg1)  
Código:
 Select Count(Cod) from Tabla1
     De esta forma tienes el total de registros en un recordset (Reg1), que si quieres puedes pasar su valor a una variable. 
   Luego creas otro recordset con los motivos y el total de registros (Reg2).  
Código:
 Select motivo, count(Cod) from Tabla1 group by motivo
     Ahora tienes cada motivo con su número y el total de registros, puedes ir recorriendo el segundo recordset uno por uno y realizando el calculo del porcentaje y mostrando los datos en el control que te interese.. Algo como:  
Código:
 While not reg2.EOF
   Text1.text= Reg2.fields(0) & " " & (Reg2.Fields(1)/Reg1.Fields(0))*100 
reg2.movenext
     El código esta echo sin probar, seguramente tenga errores pero espero que te sirva como idea. 
Edito: Veo que mientras escribía ya te han respondido 
--Saludos--