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

    [Resolvido]Numeração automática num campo

    Compartilhe

    roselito
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 28
    Registrado : 16/08/2011

    [Resolvido]Numeração automática num campo

    Mensagem  roselito em 13/1/2019, 23:13

    Boa Noite, tenho um problema com numeração automática
    Tenho um campo num formulário para numeração automática só que quando chega a 10 registo não passa de 10 com o seguinte código:
    Código:
    Private Sub Form_Current()
    If Me.NewRecord Then
    On Error Resume Next 'Apenas por segurança...
    Me![Registo].DefaultValue = Nz(DMax("[Registo]", "Ordem"), 0) + 1
    End If
    End Sub

    Código:
    Private Sub Form_Load()
    Me.Registo.Locked = True
    End Sub

    Obrigado
    avatar
    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2536
    Registrado : 21/04/2011

    Re: [Resolvido]Numeração automática num campo

    Mensagem  Marcelo David em 14/1/2019, 00:16

    Boa noite noite,
    não entendi o problema.
    E numeração automática a própria tabela já faz sem código.


    .................................................................................
    Marcelo David
    www.mrdsystem.com.br (em construção)

    roselito
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 28
    Registrado : 16/08/2011

    Numeração automática num campo

    Mensagem  roselito em 14/1/2019, 00:30

    Boa Noite
    Sem na tabela tem para numeração automática só que quando se apagam registros mantem o histórico com este código apago e começa novamente de zero, só que não passa de 10
    Para fazer testes e muto mas ventajoso.
    Obrigado
    avatar
    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2536
    Registrado : 21/04/2011

    Re: [Resolvido]Numeração automática num campo

    Mensagem  Marcelo David em 14/1/2019, 01:05

    Então, ainda continua confuso...
    Você pretende que não ultrapasse 10 registros ou que ultrapasse?


    .................................................................................
    Marcelo David
    www.mrdsystem.com.br (em construção)

    roselito
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 28
    Registrado : 16/08/2011

    Numeração automática num campo

    Mensagem  roselito em 14/1/2019, 05:54

    Bom dia
    Quero que ultrapasse os 10 registos se possível até o infinito   99999999999999......

    Como se pode ver na imagem já adicionei 12 Registo e no campo registo não vai para alem de 10

    avatar
    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2536
    Registrado : 21/04/2011

    Re: [Resolvido]Numeração automática num campo

    Mensagem  Marcelo David em 15/1/2019, 20:23

    Agora entendi...  Laughing

    Vamos lá...
    Você está usando o Dmax. Essa função retorna o valor máximo do campo da tabela. Por exemplo:
    Digamos que temos um campo ValorProduto, nessa campo, temos os seguintes valores: $ 10, $20, $5.

    Se aplicarmos o DMax nesse campo, será retornado 20, pois é o maior valor registrado no campo ValorProduto.
    E como está sendo somado mais 1, irá retornar 21.

    Na sua tabela, o maior valor no campo Registo deve ser 9, por isso sempre irá retornar 10 independente da quantidade de registros.
    A não ser que no campo Registo seja inserido um valor maior que 9, daí irá retornar o valor inserido mais 1.

    Para contornar isso, use o Dcount, que conta a quantidade registros em uma tabela.

    Teste dessa forma e veja se é o pretendido:

    Código:
    Private Sub Form_Current()
       If Me.NewRecord Then
          On Error Resume Next 'Apenas por segurança...
          Me![Registo].DefaultValue = Nz(DCount("*", "Ordem"), 0) + 1
       End If
    End Sub


    .................................................................................
    Marcelo David
    www.mrdsystem.com.br (em construção)

    roselito
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 28
    Registrado : 16/08/2011

    Numeração automática num campo

    Mensagem  roselito Ontem à(s) 22:51

    Boa Noite, Marcelo David
    Muito obrigado pela tua explicação que ajudou muito, com a alteração de DMax para DCount, o problema ficou solucionado já fiz teste e esta a correr tudo bem.
    Mais uma vez, muito obrigado pela tua ajuda.

      Data/hora atual: 17/1/2019, 23:58