MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Numeração automática personalizada

    Compartilhe

    MaykonBraga
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 11/02/2016

    Numeração automática personalizada

    Mensagem  MaykonBraga em 12/2/2016, 12:17

    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.

    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.
    avatar
    rubenscouto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 620
    Registrado : 02/10/2011

    Re: Numeração automática personalizada

    Mensagem  rubenscouto em 5/3/2016, 04:40

    Um modelo de codigo.
    Anexos
    NumeroAutomaticoSubForm.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (103 Kb) Baixado 65 vez(es)

      Data/hora atual: 21/10/2018, 07:30