Estou trabalhando com um BD para cadastro e controle de Ativos, cada item deve ter um número de controle de 9 dígitos com o formato 001.001.001 onde os 3 primeiros são "Grupo", os 3 seguintes são "Sub Grupos" e os 3 últimos são referente ao item. Há uma tabela chamada Grupo onde são cadastrados os grupos e gerados a chave primária, até aí tudo bem. Na segunda tabela são cadastrados os sub grupos, é aqui que fica complicado: No formulário “Cadastro SubGrupos” há um campo para digitar o nome do sub grupo e uma caixa de seleção que puxa os nomes do grupo da tabela “Grupo” e um campo para receber o Código do Sub Grupo, “CodSubgrupo”. Nesse campo gostaria que apresentasse o código composto por 6 dígitos, onde os 3 primeiros são o número do grupo (001 por exemplo) e os 3 últimos o numero sequencial do sub grupo, caso seja o primeiro subgrupo do grupo 001, o código fica sendo 001.001 e dando sequência 001.002, 001.003. E quando escolher outro grupo, acontecesse a mesma coisa, 002.001, 002.002 e assim por diante. Ao final gostaria de fazer a mesma coisa com o código dos itens, onde eu informaria qual o grupo e sub grupo e apareceria o código automaticamente: 002.005.001, 002.005.002 e assim por diante.
Eu tentei adaptar um código que encontrei aqui mesmo no fórum que era exatamente o que eu queria, mas não deu certo.
Alguém poderia por favor me ajudar?
Desde já agradeço.
Eu tentei adaptar um código que encontrei aqui mesmo no fórum que era exatamente o que eu queria, mas não deu certo.
- Código:
Private Sub CodGrupo_AfterUpdate()
Dim numeroencontrado As String, proximoNumero As Integer
'By JPaulo ® Maximo Access
'encontrar o ultimo numero na tabela
numeroencontrado = Nz(DMax("CodSubgrupo", "SubGrupo", "[CodGrupo] = " & Me.CodGrupo.Value), 0)
If IsNull(numeroencontrado) Or numeroencontrado = "" Or numeroencontrado = "0" Then
'se não existir numeração, insere o equipamento + 001 para iniciar
numeroencontrado = Me.CodGrupo.Value & "-" & "001"
'devolve ao campo a nova numeração
Me.CodSubgrupo.Value = numeroencontrado
Else
'se já existir numeração na tabela, acrescenta +1
proximoNumero = Right(DMax("CodSubgrupo", "SubGrupo", "[CodGrupo] = " & Me.CodGrupo.Value), 3) + 1
'devolve ao campo a nova numeração
Me.CodSubgrupo.Value = Me.CodGrupo.Value & "-" & Format(proximoNumero, "000")
End If
End Sub
Alguém poderia por favor me ajudar?
Desde já agradeço.