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


3 participantes

    [Resolvido]Numeração

    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Numeração Empty [Resolvido]Numeração

    Mensagem  Assis 15/5/2014, 19:07

    Boa tarde
    Tenho este comando para numerar o campo "Doc" .

    Me.Doc = Nz(DLast("Doc", "temp", "Conta = '" & Me.Conta & "' and " & "Movimentos='" & Me.Movimentos & "' AND " & "Ref ='" & Me.Rubrica & "'AND " & "Entidade ='" & Me.Entidade & "'")) + 1

    Sendo que no formulario onde esta este comando também tem um campo "txtAno" que tem o ano atual "2014"

    Como incluir o campo ano nesta numeração para dar assim ?

    1 - 2014
    2 - 2014
    3 - 2014

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Numeração Empty Re: [Resolvido]Numeração

    Mensagem  Alexandre Neves 15/5/2014, 19:49

    Boa tarde, Assis
    Como tens o valor armazenado no campo Doc?
    O conteúdo do campo Doc está sempre ordenado? Pela busca que é feita pelo código, ele procura o último valor registado, que pode não ser o maior!


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Numeração Empty Re: [Resolvido]Numeração

    Mensagem  Assis 15/5/2014, 19:58

    Alexandre
    A tabela "temp" está ordenada por um campo data ascendente.
    O campo "Doc" é tipo numero inteiro longo, e não está ordenado.
    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Numeração Empty Re: [Resolvido]Numeração

    Mensagem  Alexandre Neves 15/5/2014, 22:04

    Assis,
    Isso parece-me mais reboscado. A numeração é constrolada por dois campos: Doc e DataDoc. Para carregar o controlo no formulário, tem de se fazer a mecânica de ir buscar aos dois campos; depois, na guarda dos valores do formulário, tem de se retirar a parte do ano da numeração apresentada.
    Eu acho que a guarda em dois campos está bem, mas mantinha a separação em todo o processo. Quando fosse preciso juntar (no relatório ou na visualização do formulário) juntava-os mas apenas para a visualização
    Tenta
    Me.TxtDoc = Nz(DMax("Doc", "temp", "Conta='" & Me.TxtConta & "' and Movimentos='" & Me.TxtMovimentos & "' AND Ref='" & Me.TxtRubrica & "' AND Entidade ='" & Me.TxtEntidade & "' AND Year(DataDoc)=" & Me.TxtAno )) + & " - " & TxtAno


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Numeração Empty Numeração

    Mensagem  toyebom 15/5/2014, 22:49

    Não sei se funciona mas tenta

    Me.Doc = Nz(DLast("Doc", "temp", "Conta = '" & Me.Conta & "' and " & "Movimentos='" & Me.Movimentos & "' AND " & "Ref ='" & Me.Rubrica & "'AND " & "Entidade ='" & Me.Entidade & "'")) + 1 & " " & [txtAno]


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Numeração Empty Re: [Resolvido]Numeração

    Mensagem  Assis 15/5/2014, 23:11

    Alexandre

    Não resultou, então apliquei a parte a vermelho no meu código e resulta....    

    Private Sub DOCUMENTOLANC_GotFocus()
    Me.DOCUMENTOLANC = DLast("Doc", "temp", "Conta = '" & Me.Conta & "' and " & "Movimentos='" & Me.HISTORICOLANC & "' AND " & "Ref ='" & Me.RubricaLANC & "'AND " & "Entidade ='" & Me.EntidadeLANC & "'") + 1 & " - " & txtAno
    End If

    Mas quando o campo "DocumentoLanc" estava nulo estava assim e dava certo.

    If IsNull(Me.DOCUMENTOLANC) Or Me.DOCUMENTOLANC = "" Then
    Me.DOCUMENTOLANC = 1
    End If

    Agora mudei para também dar o Ano

    If IsNull(Me.DOCUMENTOLANC) Or Me.DOCUMENTOLANC = "" Then
    Me.DOCUMENTOLANC = 1  " - " & txtAno
    Else
    End If

    mas só devolve: "  -2014" não coloca "1-2014"


    .................................................................................
    *** Só sei que nada sei ***
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Numeração Empty Re: [Resolvido]Numeração

    Mensagem  Alexandre Neves 15/5/2014, 23:14

    No caso de não ser preciso ter o ano no filtro é possível se a numeração não reiniciar na mudança do ano
    Sobre a outra parte, não percebi onde utilizas, mas ter o nome dos controlos iguais aos nomes dos campos só ajuda ao Access poder-se enganar


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Numeração Empty Re: [Resolvido]Numeração

    Mensagem  Assis 15/5/2014, 23:23

    Alexandre

    Quanto ao nome dos campos.... quando inciei esta BD ainda não sabia nada sobre a confusão que daria.

    Eis o comendo completo ao rebeber o foco .....

    Private Sub DOCUMENTOLANC_GotFocus()
    Dim stDocName As String
    stDocName = "qrytemp"
    DoCmd.SetWarnings False
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    DoCmd.SetWarnings True


    DOCUMENTOLANC.SelStart = 0
    DOCUMENTOLANC.SelLength = Len(Me.DOCUMENTOLANC.text)

    Me.DOCUMENTOLANC = DLast("Doc", "temp", "Conta = '" & Me.Conta & "' and " & "Movimentos='" & Me.HISTORICOLANC & "' AND " & "Ref ='" & Me.RubricaLANC & "'AND " & "Entidade ='" & Me.EntidadeLANC & "'") + 1 & " - " & TxtAno


    If IsNull(Me.DOCUMENTOLANC) Or Me.DOCUMENTOLANC = "" Then
    Me.DOCUMENTOLANC = 1 & " - " & TxtAno
    Else
    End If


    If IsNull(Me.HISTORICOLANC) Then
    MsgBox "Falta Preencher o Movimento", vbExclamation, "Campo Obrigatório"
    Me.HISTORICOLANC.SetFocus
    Me.DOCUMENTOLANC = Null
    Else
    If IsNull(Me.RubricaLANC) Then
    MsgBox "Falta Preencher a Rubrica", vbExclamation, "Campo Obrigatório"
    Me.RubricaLANC.SetFocus
    Me.DOCUMENTOLANC = Null
    Else
    If IsNull(Me.EntidadeLANC) Then
    MsgBox "Falta Preencher a Entidade", vbExclamation, "Campo Obrigatório"
    Me.EntidadeLANC.SetFocus
    Me.DOCUMENTOLANC = Null
    End If
    End If
    End If

    Me.DOCUMENTOLANC.BackColor = 65535

    End Sub


    .................................................................................
    *** Só sei que nada sei ***
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Numeração Empty Re: [Resolvido]Numeração

    Mensagem  Alexandre Neves 16/5/2014, 09:32

    Bom dia,
    No código que indiquei, alterei o DLast para o DMax
    Podes alterar para
    Me.DOCUMENTOLANC = Dmax("Doc", "temp", "Conta = '" & Me.Conta & "' and " & "Movimentos='" & Me.HISTORICOLANC & "' AND " & "Ref ='" & Me.RubricaLANC & "'AND " & "Entidade ='" & Me.EntidadeLANC & "'") + 1 & " - " & TxtAno

    If Me.DOCUMENTOLANC = " - " & TxtAno Then Me.DOCUMENTOLANC = 1 & " - " & TxtAno


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Numeração Empty Re: [Resolvido]Numeração

    Mensagem  Assis 16/5/2014, 17:36

    Obrigado Alexandre

    Mas tive de alterar o campo "Doc" para texto.


    .................................................................................
    *** Só sei que nada sei ***

    Conteúdo patrocinado


    [Resolvido]Numeração Empty Re: [Resolvido]Numeração

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/5/2024, 13:34