Cual es la mejor manera de generar codigo para el boton nuevo

Proposed Answer Cual es la mejor manera de generar codigo para el boton nuevo

  • sábado, 28 de abril de 2012 19:27
     
     
    Bueno, 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¡

Todas las respuestas

  • sábado, 28 de abril de 2012 19:42
     
     Respuesta propuesta Tiene código

    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:11
    Moderador
     
     

    estas diseñando la tabla de forma incorrexcta y no cumpliendo con las formas normales de diseño de la base de datos

    3FN

    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


  • 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