Cual es la mejor manera de generar codigo para el boton nuevo
-
sábado, 28 de abril de 2012 19:27Bueno, por ejemplo yo quiero generar el codigo de un cliente
masomenos asi: CLI2000, que empieze con ese codigo
... que al hacer clic en el boton nuevo, si no hay codigos en la base de datos aparezca por defecto CLI2000
Pero si hay codigo entonces que cuente el ultimo codigo y le aumente uno, por ejemplo mi tabla clientes tiene
solo 2 registros CLI2000 y CLI2002; entonces al hacer clic en el boton nuevo, me genere el CLI2003
Bueno esa es auna forma que pense para generar codigo, pero en mi codigo tengo problemas al llegar al CLI2010,
ya que me sale CLI2001 jjejeje..xD
Pero bueno habra una forma mas eficiente de generar codigo?
me hablaron de utilizar hash.. :S
Mi profesor me dijo que seria mejor que cree algo asi como un banco de codigo en mi base de datos y que solo jale
de ahi el codigo.. pero no le entendi bien :S
O quizas haya otro metodo mas facil o mas eficiente
Toda opinion vale..
Espero sus respuestas.. Gracias..xD¡- Cambiado Enrique M. MontejoMVP martes, 01 de mayo de 2012 14:37 (De:Lenguaje VB.NET)
Todas las respuestas
-
sábado, 28 de abril de 2012 19:42
creo que podria ser asi:
SELECT ISNULL(MAX(CAST(RIGHT(Codigo, 4) AS INT)), 0) + 1 AS Cantidad FROM tblCLiente
Suerte.
- Editado Terricolaw sábado, 28 de abril de 2012 19:43
- Editado Terricolaw sábado, 28 de abril de 2012 20:48
- Propuesto como respuesta Terricolaw viernes, 18 de mayo de 2012 16:51
-
sábado, 28 de abril de 2012 20:11Moderador
estas diseñando la tabla de forma incorrexcta y no cumpliendo con las formas normales de diseño de la base de datos
la clave no deberia ser datos compuestos, si hay un codio y un nuemro deberias ser dos campos separados
o sea un campos para el CLI y otro para el 2000
de esta forma podrias usar el
SELECT Max(id) FROM Table WHERE cod = 'CLI'
esta incorrecto suar un codigo CLI2000 como id de la tabla en un unico campo
Mi profesor me dijo que seria mejor que cree algo asi como un banco de codigo en mi base de datos y que solo jale
pues tu profesor sabe poco de normalizacion
se usan tablas de secuanciales cuando se requiere poder administrar la generacion de los codigo, un caso conocido es cuando se generan numeros de facturacion en dodne el id corresponde con talonarios preimpresos, quizas se daba adaptar los numeros secuanciales por es se usan tablas de secuaciales
pero esta caso no tien nada que ver con eso, es solo in id consecutivo separa los campos o usa un id simple y se solucina el problema
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Editado Leandro TuttiniMVP, Moderator sábado, 28 de abril de 2012 20:14
-
sábado, 28 de abril de 2012 21:24
Coincido con Leandro, lo que podrías hacer es ejemplo: seleccionar el máximo el id_cliente que es tu PK (Primary key) de tu tabla cliente y en el formulario concatenar tu id con un string "CLI: " , siempre al apretar al btnNuevo.
txtnro_cliente.text="CLI" & Cstr(id_cliente).
espero que se entienda.
Analista programador Matias E. Piloni

