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]Ajuda com código para auto numeração de controle de contratos

    Compartilhe

    Dery_santos
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 03/10/2016

    [Resolvido]Ajuda com código para auto numeração de controle de contratos

    Mensagem  Dery_santos em Qui 13 Out 2016, 19:50

    Pessoal eu tenho o seguinte código abaixo o mesmo serve para criar sequencia para cada contrato que eu tenho, tipo assim campo com numero de contrato e a sequencia

    cada vez que eu fizer uma alteração em um contrato ele tem que iniciar a contagem em 1  ex: contrato 5001/2016 ai eu tenho que lançar uma alteração ele vai para a sequencia 1 se eu lançar mais um ele vai pra sequencia 02, mas essa numeração tem que começar do 0 sempre que eu mudar o numero do contrato tipo se eu for fazer alteração no contrato 5002/2016 ele tem que iniciar do 1

    EU fiz o código abaixo mas ja revi ele varias vezes e não sei o que esta errado
    nela inclui a seguinte linha :  

    Set dbs = CurrentDb
       strsql = "SELECT DISTINCTROW TOP 1 Max([SequenciaAdi]) AS MaiorValorSEQ " & _

    quando vou executar ele fala que método ou membro de dados não foi encontrato. rst.MaiorValorSEQ

    onde esta o erro?

    Private Sub Numcontratoaditivo_AfterUpdate()

    On Error GoTo Err_Numcontratoaditivo_AfterUpdate

    Numcontratoaditivo = UCase(Numcontratoaditivo)
    Dim Numero_do_contrato As String
    Dim mensagem As String

    Numero_do_contrato = "Numero_do_contrato = '" & Me.Numcontratoaditivo & "'"
    If IsNull(DLookup("Numero_do_contrato", "[Cadastro Contrato]", "Numero_do_contrato")) Then
       mensagem = "O Contrato especificado não foi localizado." & _
                   "@Verifique se foi digitado corretamente." & _
                   "@Selecione na lista. Se não o encontrar, deverá ser cadastrado previamente."
       MsgBox mensagem, , "Aviso do Sistema de Contratações"
       Numero_do_contrato = False
       Me.Numcontratoaditivo.SetFocus
       Exit Sub
    End If


       Dim dbs As Database, rst As Recordset
       Dim strsql As String, intSEQ As Byte
       
       Set dbs = CurrentDb
       strsql = "SELECT DISTINCTROW TOP 1 Max([SequenciaAdi]) AS MaiorValorSEQ " & _
                "FROM [CADASTRO DE ADITIVO] " & _
                "WHERE [CADASTRO DE ADITIVO].Numcontratoaditivo = '" & Me.[Numcontratoaditivo] & "'"
     
       Set rst = dbs.OpenRecordset(strsql, dbOpenSnapshot)
       If IsNull(Me.MaiorValorSEQ) Then
           intSEQ = 0
           Me.SequenciaAdi = 1
       Else
           intSEQ = rst.MaiorValorSEQ
           Me.SequenciaAdi = rst.MaiorValorSEQ + 1
       End If

       
       Me.SequenciaAdi = Me.DataMesAnoBasePrecoCont

       If Me.valorcontaratoaditivo = 0 Or IsNull(valorcontaratoaditivo) Then

           If IsNull(VALORATUALCONT) Or VALORATUALCONT = 0 Then
              valorcontaratoaditivo = ValorCont
               Exit Sub
           End If
       End If

       valorcontaratoaditivo = VALORATUALCONT

    '    strSQL = "SELECT DISTINCTROW [valorcontaratoaditivo] AS ValorAtual " & _
    '             "FROM [CADASTRO DE ADITIVO] " & _
    '              "WHERE ([CADASTRO DE ADITIVO].Numcontratoaditivo = '" & Me.[Numcontratoaditivo] & "') AND ([CADASTRO DE ADITIVO].SequenciaAdi=" & CStr(intSEQ) & ")"
    '
    '    Set rst = dbs.OpenRecordset(strSQL, dbOpenSnapshot)
    '    If rst.RecordCount = 0 Then
    '        Me.valorcontaratoaditivo = ValorCont
    '    Else
    '        Me.valorcontaratoaditivo = rst.vALORATUAL
    '    End If
       


    Exit_Numcontratoaditivo_AfterUpdate:
       Exit Sub

    Err_Numcontratoaditivo_AfterUpdate:
       MsgBox Err.Description
       Resume Exit_Numcontratoaditivo_AfterUpdate

    End Sub
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3336
    Registrado : 14/08/2013

    Re: [Resolvido]Ajuda com código para auto numeração de controle de contratos

    Mensagem  FabioPaes em Qui 13 Out 2016, 23:36

    Amigo, tudo por culpa de um Ponto...

    Mude de:
    ...
    Else
           intSEQ = rst.MaiorValorSEQ
           Me.SequenciaAdi = rst.MaiorValorSEQ + 1
       End If

    ...


    Para:


    ...
    Else
           intSEQ = rst!MaiorValorSEQ
           Me.SequenciaAdi = rst!MaiorValorSEQ + 1
       End If

    ...




    rst!MaiorValorSEQ <=== O que era ponto deve ser ! Exclamação!



    Teste e retorne por favor!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    Dery_santos
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 03/10/2016

    Re: [Resolvido]Ajuda com código para auto numeração de controle de contratos

    Mensagem  Dery_santos em Sex 14 Out 2016, 12:24

    Oi Fabio bom dia,


    Obrigado pela ajuda , eu testei como você falou mas agora ele fala que o campo MaiorValorSEQ não é encontrado
    é como se a consulta não estivesse gerando esse campo

    Dery_santos
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 03/10/2016

    Re: [Resolvido]Ajuda com código para auto numeração de controle de contratos

    Mensagem  Dery_santos em Sex 14 Out 2016, 12:47

    Oi Fabio obrigado pela ajuda , aparentemente agora deu certo tinha mais um erro eu tinha colocado



    Set rst = dbs.OpenRecordset(strsql, dbOpenSnapshot)
      If IsNull(Me.MaiorValorSEQ) Then

    e o correto seria

    If IsNull(rst!MaiorValorSEQ) Then


    Agora ele esta numerando mas aparece uma mensagem de erro  mas continua , vou verificar que erro é esse e depois posto aqui.

    Mas desde ja muito obrigado.

    Dery_santos
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 03/10/2016

    Re: [Resolvido]Ajuda com código para auto numeração de controle de contratos

    Mensagem  Dery_santos em Ter 25 Out 2016, 14:21

    Muito obrigado

    o código deu certo coloquei o ! em vez de . a mensagem que estava dando errado é que eu inverti dois campos e por isso não estava dando certo.


    Obrigado
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3336
    Registrado : 14/08/2013

    Re: [Resolvido]Ajuda com código para auto numeração de controle de contratos

    Mensagem  FabioPaes em Ter 25 Out 2016, 14:30

    Grato pelo retorno amigo, até a proxima se Deus quiser!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

      Data/hora atual: Dom 22 Out 2017, 11:13