Creo que tienes dos formas:
Autonumerico: Es lo que tu haces, pero mi recomendación es que dejes esa chamba al motor, no lo hagas por código. Si usas Access es tan simple como poner el campo en Autonumerico. Si usas Firebird usas un trigger con un generador como lo explique en el video que colgue, si usas SQL Server u otro tendras que remitirte a las formas de esos motores, pero no lo generes tu porque el motor lo puede hacer y te ahorras codigo.
Nemotecnia: Es armar tu código según algún criterio o diseño, por ejemplo para los productos le pones una P al inicio de tal forma que un id P00001 se refiere a un producto, C0001 a un cliente, y asi sucesivamente, esa regla la defines tu.
¿Cual usar?. La verdad me inclino por el autonumerico si la cantidad de items es poca (menos de 10,000 por ejemplo). Incluso hay quienes justifican usar una nemotecnia cuando en un solo textbox escriben el id nemotecnico y por su diseño se sabe hacia donde se hace la consulta en la BD. Pero igual esto se puede resolver con el autonumerico muy fácilmente. Otra forma de usar nemotecnia es con puros numeros, por ejemplo: 0030006 donde el primer 003 se refiere a Proveedor y lo demas el codigo autonumerico. Y otra algo asi:
CINVI007 referido a una Cinta de Video
CINEMB004... referido a una Cinta de Embalaje
Esto podría ser practico pero tienes que diseñarlo bien, tiene que estar bien pensadito, porque se puede volver un dolor de cabeza.
Insisto en el autonumerico y que lo maneje el motor. Saludos.