Como generar autocodigo en tabla artículos

Tengo una tabla llamada "Articulos" la cual tiene campos "categorias", "subcategorias" " codinterno", además tengo un formulario F_Articulos basado en la tabla anterior, Necesito que cuando el usuario seleccione la catergoria y la subcategoría correspondiente al articulo se genere un prefijo y después un autonumérico y este lo guarde en el campo "codinterno": es decir

Private sub f_categoria_AfterUpdate()

Dim num 1 as string

Dim num 2 as string

Dim prefijo as string

Dim numeral as string

num1 = Me.F_categoria.value

num2= Me.F_scategoria.value

prefijo = num1 & num2

Numeral = buscar dentro de los prefijos el ultimo valor de numeral y agregar 1

codinterno = prefijo + numeral

Me.F_codinterno= codinterno

MsgBox "Se creo el siguiente codigo " & codinterno

End sub

Ruego me puedan ayudar

1 respuesta

Respuesta
1

Existen varias formas, más o menos fáciles para unos y otros, yo te paso una de ellas:

Haremos una consulta sobre la tabla que tiene el último valor. Yo te indico como buscar el dato codinterno pero está claro que como lo has puesto no será prefijo + numeral, será numeral ya que este contendrá ya de por si el prefijo.

Dim nuevoNUMERAL As Integer
Dim Rst As DAO.Recordset
        DoCmd. RunCommand acCmdSaveRecord ' Aquí guardamos los datos en la tabla antes de pasar la consulta
        Set Rst = CurrentDb.OpenRecordset("TABLACONNUMERAL") ' Ejecutamos la consulta.
        Rst. MoveLast ' Vamos al último registro
        ' Ejecutamos la actualización
        nuevoNUMERAL = Rst("codinterno")
        Rst.Close ' Cerramos la consulta
        Set Rst = Nothing ' Cerramos los datos de la consulta
        codinterno = nuevoNUMERAL + 1

Ahora codinterno será el siguinte. Esto tiene un problema y es que la consulta de actualización tienes que hacerla rápidamente ya que si otro usuario pide el dato le dará el mismo... no se si me expliqué bien.

Yo ejecutaría esta consulta justo antes de meter los datos en la base de datos.

Estimado:

Muchas gracias por responder, estoy recién entrando a aprender programación en access, según lo que entiendo del código que enviaste, debo crear un campo "numeral" en tabla articulo pero este debe tener relación con el prefijo por ejemplo:

Si el usuario ingresa como articulo: CABLE 1.5 mm color rojo, Categoría seria electricidad (E) Sub categoría seria (CA) entonces el sistema se ira al ultimo prefijo ECA y si no hay nada asignara el numeral ECA-0001. Si después el usuario vuelve a ingresar un material de la misma categoría y sub categoría le devolverá ECA-0002.

Saludos!

Y gracias nuevamente.

Mi consejo es que numeral sea un campo numérico porque te va a ahorra muchísimos problemas.

En la tabla ten dos campos: PREFIJO y NUMERAL además del resto que necesites.

Numeral será el consecutivo para los prefijos.

Otra forma de afrontar el proyecto sería pasar de Numeral y utilizar el ID, no tendría una numeración exacta, pero si el objetivo de numeral es conocer el número de registros existen consultas tipo COUNT que lo calculan en un pis pas.

Otra manera de afrontar el proyecto es generar una tabla para cada prefijo y que tengan su propio id que será consecutivo siempre que no borres ninguna línea.

Por otro lado lo del consecutivo siempre va a ser un problema si borras registros anteriores, pero esto ya lo habrás tenido en cuenta.

El problema es no saber para que usas NUMERAL exactamente...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas