MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


2 participantes

    [Resolvido]Criar uma sequencia em um formulario somando 1 ao numero anterior

    avatar
    phdgodoy
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/10/2013

    [Resolvido]Criar uma sequencia em um formulario somando 1 ao numero anterior Empty Criar uma sequencia em um formulario somando 1 ao numero anterior

    Mensagem  phdgodoy 26/10/2013, 22:45

    Estou utilizando a seguinte expressão no campo valor padrão para somar 1 ao numero anterior do campo numero.// =SeImed(DContar("[NunPed]";"[Pedidos]")=0;("2461" & Ano(Data()));Format((Esquerda(DMáx("[NunPed]";"[Pedidos]");4)+1) & Ano(Data());"0000\/00"))//.O ultimo número que eu tenho neste campo é 2461/13, entretanto quando clico em criar novo registro, no campo do formulário aparece 246220/13.
    avatar
    Clebergyn
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 788
    Registrado : 29/08/2012

    [Resolvido]Criar uma sequencia em um formulario somando 1 ao numero anterior Empty Re: [Resolvido]Criar uma sequencia em um formulario somando 1 ao numero anterior

    Mensagem  Clebergyn 27/10/2013, 02:15

    Amigo, uso essa formula aqui abaixo, num campo texto, e quando muda de ano ele zera e começa do 1, voce vai precisar da "DataRegistro" em que cada registro tenha uma data de registro ok?
    tem outras maneiras de fazer, para isso preciso verificar como organizou seu banco de dados
    acho um erro do Access não ter essa função de enumerar, entao veja ai
    "NunPed" tem que ser um campo texto

    se servir, pega ai:

    function enumerar()
    On Error GoTo g
    If IsNull([NunPed]) Then
    x0 = DLast("[NunPed]", "[suatabela]")
    x = DMax("[NunPed]", "[suatabela]", "Year([DataRegistro]) =" & Year(Date) & " OR Isnull([DataRegistro])")
    If IsNull(x0) Then
    MsgBox ("O Registro anterior está vazio, concerte, volte ou exclua")
    Exit Sub
    End If
    y = Right(x, 2)
    If IsNull(y) Or IsEmpty(y) Then
    y1 = Format(Date, "YY")
    Else
    y1 = CInt(y)
    End If
    s = Len(x)
    t = Mid(x, 1, s - 3)
    If IsNull(y) Or IsEmpty(y) Then
    t = 0
    Else
    t = CInt(t)
    End If
    'MsgBox x & "," & y & "," & s & "," & T
    d = Format(Date, "yy")
    If d - y1 > 0 Then
    t = 0
    End If
    End If

    If IsNull([NunPed]) Then
    [NunPed] = " "
    [NunPed] = Format(t + 1, "000") & "/" & Format(Date, "YY")
    End If
    Exit Sub
    g: MsgBox ("Coloque a numeração do registro anterior no formato 000/00")
    end function

    obs: - Outra idéia de outra forma, quando voce cria o campo texto(numeração) nnnn/aa e procura qual é o maior entre, por exemplo, 121/12 e 120/13 ele o sistema vai falar que 121/12 é maior entende? Complica. Então seria conveniente criar um campo "numero" para guardar o 121 e um campo "ano" para guardar o "12", ocultos, assim que gerar um novo numero. a partir daí, dá para voce saber já qual é o maior numero e gerar o posterior, chegando 31/12/13 ele vai gerar o ultimo numero "ano = 13" e dia 01/01/14 ele vai pegar: se Ano(Date())>Dultimo(ano)  e vai começar de um(1) de novo.
    em outras palavras, fica bem mais fácil se criar dois campos ocultos, um para o numero e outro para o ano.
    ficou claro?
    avatar
    phdgodoy
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/10/2013

    [Resolvido]Criar uma sequencia em um formulario somando 1 ao numero anterior Empty Formulario Access sequencia em um campo txt

    Mensagem  phdgodoy 27/10/2013, 14:35

    Obrigado pelo retorno. Meu Access é 2010. Criei uma caixa texto e no campo fonte de controle colei a formula, mas esta dando erro de sintaxe invalida. Criei também um campo DataRegistro.
    avatar
    Clebergyn
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 788
    Registrado : 29/08/2012

    [Resolvido]Criar uma sequencia em um formulario somando 1 ao numero anterior Empty Re: [Resolvido]Criar uma sequencia em um formulario somando 1 ao numero anterior

    Mensagem  Clebergyn 27/10/2013, 19:31

    o Campo "DataRegistro" tem que ser criado na tabela também, então, onde esta "exit sub" coloque "exit function"
    ou senao coloque toda a função abaixo dentro de um sub, esqueça o function, e preencha os campos DataRegistros para todos os registros
    se quiser converter seu banco para access 2003, zipado, e me enviar aqui, posso dar uma olhada ok

    On Error GoTo g
    If IsNull([NunPed]) Then
    x0 = DLast("[NunPed]", "[suatabela]")
    x = DMax("[NunPed]", "[suatabela]", "Year([DataRegistro]) =" & Year(Date) & " OR Isnull([DataRegistro])")
    If IsNull(x0) Then
    MsgBox ("O Registro anterior está vazio, concerte, volte ou exclua")
    Exit Sub
    End If
    y = Right(x, 2)
    If IsNull(y) Or IsEmpty(y) Then
    y1 = Format(Date, "YY")
    Else
    y1 = CInt(y)
    End If
    s = Len(x)
    t = Mid(x, 1, s - 3)
    If IsNull(y) Or IsEmpty(y) Then
    t = 0
    Else
    t = CInt(t)
    End If

    d = Format(Date, "yy")
    If d - y1 > 0 Then
    t = 0
    End If
    End If

    If IsNull([NunPed]) Then
    [NunPed] = " "
    [NunPed] = Format(t + 1, "000") & "/" & Format(Date, "YY")
    End If
    Exit Sub
    g: MsgBox ("Coloque a numeração do registro anterior no formato 000/00")
    avatar
    phdgodoy
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/10/2013

    [Resolvido]Criar uma sequencia em um formulario somando 1 ao numero anterior Empty criar sequencia

    Mensagem  phdgodoy 29/10/2013, 18:51

    Mudei para versao 2007 e funcionou. Obrigado

    Conteúdo patrocinado


    [Resolvido]Criar uma sequencia em um formulario somando 1 ao numero anterior Empty Re: [Resolvido]Criar uma sequencia em um formulario somando 1 ao numero anterior

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 7/11/2024, 15:32