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