Tienes una clave única por cliente???
si es así modifica esa función y utiliza un array para asignar a un cliente siempre la misma clave, al pedir la clave, buscas en el Array, si existe, devuelves el número que le hubieras dado en su momento, y si no, añades el cliente al array con el número que le toque...
Espero haberte entendido, y poder ayudarte
P.D.: Por cierto, ¿cuando hablas de informe, re refieres a una consulta, o a un informe en crystal o access?