Quiero generar un código para los artículos que se compone de 3 grupos
de números:
99 - Código del grupo o familia
999 - Código del proveedor
999 - Contador
Se trata de que seleccionando un grupo y un proveedor, al dar de alta
a un artículo, te asigne el número que le corresponda... pero, claro,
éste será distinto en cuanto se varíe o bien el grupo o bien el
proveedor. Por ejemplo:
23-002-001 el el primer artículo del grupo 23 y el proveedor 002.
si meto otro artículo en este mismo, debería darle el número 002 en el
contador.
pero, si cambio el grupo, por ejemplo al 24 y es el primero que
introduzco, el código debería ser 24-002-001.
¿Hay forma de hacer este contador de manera que distinga este
problema?
RESPONDE CARCAR
===============
Esta función hace exactamente lo que tu quieres.
Function ObtenerNumero(P1 As Integer, P2 As Integer) As String
Dim Rs As Recordset
Dim Sql As String
Dim Valor As String
Dim Numero As Integer
Valor = Format(P1, "00") & "-" & Format(P2, "000") & "-"
Sql = "SELECT TOP 1 Codigo FROM Tabla3 WHERE Codigo LIKE '"
Sql = Sql & Valor & "*' ORDER BY Codigo DESC"
Set Rs = CurrentDb.OpenRecordset(Sql, dbOpenSnapshot)
If Rs.RecordCount > 0 Then
Numero = Right(Rs!Codigo, 3) + 1
ObtenerNumero = Valor & Format(Numero, "000")
Else
ObtenerNumero = Valor & "001"
End If
Rs.Close
End Function
Tal cual está, recibe los valores de código de grupo y código de
proveedor en "enteros", pero no hay problema si los pasas como tipo
texto, siempre que hayas tenido la precaución de que tengan la
longitud adecuada, bueno en ese caso sobrarían los Format en la
instrucción que guarda "Valor" que quedaría así:
Valor = P1 & "-" & P2 & "-"
               (
geocities.com/es/ensolva/Descargas)                   (
geocities.com/es/ensolva)                   (
geocities.com/es)