Visual Basic Foro

Programación => Bases de Datos => Mensaje iniciado por: E N T E R en Abril 19, 2011, 05:01:15 pm

Título: Código automático cual es la mejor forma
Publicado por: E N T E R en Abril 19, 2011, 05:01:15 pm
Hola de nuevo amigos del foro. Cual es la manera que ustedes utilizan para generar un código de articulo, cliente o proveedor.
Yo utilizo esta forma quiero saber si es recomendable asi.


Código: [Seleccionar]
Private Sub cmdNuevo_Click()
   
    Dim NCodigo As String
   
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
    '// Conectar la Base Datos con ADO
       Call ConectarADO
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+

        txtCodigo.Text = ""
       
        StrSQL = "SELECT codigo FROM clientes"
        rsADO.Open StrSQL, cnADO, adOpenStatic, adLockOptimistic, adCmdText
       
        If rsADO.RecordCount = 0 Then
            NCodigo = 1
        Else
            With rsADO
                rsADO.MoveLast
                NCodigo = .Fields("CODIGO") + 1
            End With
        End If
       
        txtCodigo.Text = NCodigo
   
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
    '// Cerrar la base de datos y liberar la memoria
        Call CerrarADO
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+

End Sub

Título: Re:Código automático cual es la mejor forma
Publicado por: YAcosta en Abril 19, 2011, 10:27:58 pm
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.

Título: Re:Código automático cual es la mejor forma
Publicado por: wolf_kof en Abril 20, 2011, 08:18:09 pm
Muy buena explicación la de IvanB, pero yo te aconsejo que utilices las dos tecnicas!! en mis bases de datos yo tengo un campo id autonumerico y un campo codigo con nemotecnia!! osea le asigno una serie de caracteres y el id autonumerico ejemplo:

'Id                    Codigo                  Producto
1                      P0001                   Producto de Prueba 1
2                      P0002                   Producto de Prueba 2

si tienes codigo de barras agregalo aparte  ;)