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 vba

    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 vba

    Mensagem  Dery_santos em Qua 09 Nov 2016, 17:18

    Pessoal boa tarde

    Novamente preciso de uma ajuda.
    Eu criei um formulário onde alguns campos preciso que ele busque informações de outra tabela, e também preciso que assim que inserir dados nesse campo que ele já grave as
    informações na tabela para poder buscar dados em um sub formulário pra isso criei o seguinte código abaixo, mas o que acontece  ele só funciona metade do código , se eu deixo as duas partes ele da a menssagem Parêmetro insuficiente . eram esperados 1.
    Se eu tiro a parte do código onde grava os dados na tabela  o código tras os dados que preciso normal mas não grava , se eu tiro a parte do código onde tras os dados ele grava mas as informações da outra tabela não vem, tem uns 3 dias que estou parado aqui e não descubro onde esta o erro.
    Alguém pode me ajudar?


    Grato



    Private Sub TXTNUMLC_CONT_AfterUpdate()
     
    Dim dbs As Database
    Dim sql As String
    Dim NLC As Recordset
    Dim TESTE As String

    If Not IsNull(Me.TXTNUMLC_CONT) Then


    Set dbs = CurrentDb

       sql = "SELECT DISTINCTROW  [NNumeroLCcontrato] " & _
           " FROM [Cadastro Contrato] " & _
           " WHERE [Cadastro Contrato]![NumeroLCcontrato] = '" & Me.TXTNUMLC_CONT & "' "
           
       Set NLC = dbs.OpenRecordset(sql, dbOpenDynaset)
               
       If NLC.BOF = False Then
           NLC.MoveFirst
               MsgBox "VOCÊ ESTÁ TENTANDO INCERIR UMA CFM QUE JÁ EXISTE!! DIGITE OUTRO NÚMERO."
               Me.TXTNUMLC_CONT = Null
               Me.TXTNUMLC_CONT.SetFocus

       End If
       NLC.Close
       dbs.Close
    Else
       MsgBox "Você deve incerir um número de LC, para continuar.!!!"
       Me.TXTNUMLC_CONT.SetFocus
    End If
    '======================================================================"

     
     
     Dim strcriteria As String
       Dim MSG As String, Style As String, Title As String
       Dim EVENTORC As Boolean
       
       
       NumeroLCcontrato = UCase(NumeroLCcontrato)

     strcriteria = "NumeroLCcontrato= '" & Me.TXTNUMLC_CONT & "'"
           If Not IsNull(DLookup("NumeroLCcontrato", "[CADASTRO DE LICITAÇÃO]", strcriteria)) Then
               Me.TXTNUMLC_CONT = DLookup("[NUMERO LC]", "[CADASTRO DE LICITAÇÃO]", strcriteria)
           End If


        strcriteria = "NumeroLCcontrato = '" & Me.TXTNUMLC_CONT & "'"
       If IsNull(DLookup("eventoCadRc", "[CADASTRO DE LICITAÇÃO]", strcriteria)) Then
               eventoCadRc = True
           Else
               eventoCadRc = False
          End If


       ' devolve o número



       If eventoCadRc Then

       If Not IsNull(DLookup("[NUMERO LC]", "[CADASTRO DE LICITAÇÃO]", strcriteria)) Then

           'CADASTRO DE LICITAÇÃO


          If Not IsNull(DLookup("[OBJETO DA LICITAÇÃO]", "[CADASTRO DE LICITAÇÃO]", strcriteria)) Then
               ObjetoCont = DLookup("[OBJETO DA LICITAÇÃO]", "[CADASTRO DE LICITAÇÃO]", strcriteria)

       

      End If
           If Not IsNull(DLookup("Prazo", "[CADASTRO DE LICITAÇÃO]", strcriteria)) Then
               PrazoCont = DLookup("Prazo", "[CADASTRO DE LICITAÇÃO]", strcriteria)
           End If
         


    If Not IsNull(DLookup("[Tipo do prazo]", "[CADASTRO DE LICITAÇÃO]", strcriteria)) Then
               Tipodoprazocont = DLookup("[Tipo do prazo]", "[CADASTRO DE LICITAÇÃO]", strcriteria)
           End If

       

     If Not IsNull(DLookup("ModalidadeCadRC", "[CADASTRO DE LICITAÇÃO]", strcriteria)) Then
               ModalidadeCont = DLookup("ModalidadeCadRC", "[CADASTRO DE LICITAÇÃO]", strcriteria)
           End If
         

     
           If Not IsNull(DLookup("[SIGLA DO PROCESSO]", "[CADASTRO DE LICITAÇÃO]", strcriteria)) Then
              AreaCont = DLookup("[SIGLA DO PROCESSO]", "[CADASTRO DE LICITAÇÃO]", strcriteria)
         
    End If
         
           If Not IsNull(DLookup("[VALOR TOTAL ESTIMADO]", "[CADASTRO DE LICITAÇÃO]", strcriteria)) Then
               [VALOR TOTAL ESTIMADO] = DLookup("[VALOR TOTAL ESTIMADO]", "[CADASTRO DE LICITAÇÃO]", strcriteria)
           
    End If
           ' cadastro de processo

           If Not IsNull(DLookup("COMPRADOR", "[CADASTRO DE LICITAÇÃO]", strcriteria)) Then
       
          COMPRADOR = DLookup("COMPRADOR", "[CADASTRO DE LICITAÇÃO]", strcriteria)
         


    End If
           

       Else
           MSG = "Atenção: Você está tentando cadastrar um Contrato com as " & _
                 "especificações de um Processo que não está cadastrado." & _
                 "@APÓS SAIR DESTA MENSAGEM (CLICANDO OK), APERTE A TECLA [ESC]." & _
                 "@Saia deste módulo e entre no módulo Analista para inserir " & _
                 "um Edital/Processo no Cadastro."
           Style = vbOKOnly + vbCritical            ' Define botões.
           Title = "Alerta ao usuário"              ' Define título.
           If MsgBox(MSG, Style, Title) = vbOKOnly Then
               Rollback
           End If
       End If
       Else
       MSG = "Você está tentando cadastrar um Contrato em um processo que pode estar " & _
             "Suspenso, Cancelado, Anulado, Revogado ou Fracassado." & _
             "@Verifique o evento do Processo." & _
             "@Se for um processo Suspenso, remova o evento na tela de Cadastro de RC." & _
             "Em outras situações, somente o seu Coordenador poderá alterar."
       Style = vbOKOnly
       Title = "Alerta ao Usuário"
           If MsgBox(MSG, Style, Title) = vbOKOnly Then
           Rollback
           End If
       End If
         
       
       


    End Sub
    avatar
    cleverson_manaus
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 799
    Registrado : 23/09/2011

    Re: [Resolvido]Ajuda com código vba

    Mensagem  cleverson_manaus em Sex 11 Nov 2016, 11:45

    Bom dia Evanderly,

    O modo mais, minha opinião, é vc disponibilizar uma cópia do seu arquivo pelo menos a parte do problema.

    Abraços


    .................................................................................
    [Você precisa estar registrado e conectado para ver esta imagem.]

    "É fazendo que se aprende a fazer aquilo que se deve aprender a fazer."(Aristóteles)
    - Dúvida resolvida!!! Marcar o tópico como resolvido!!!

    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 vba

    Mensagem  Dery_santos em Sex 18 Nov 2016, 16:36

    Bom dia, Obrigado pela ajuda, bom não sei exatamente onde estava o erro mas refiz o código conforme abaixo e deu certo.
    Mai uma vez obrigado a todos .


    Dim Seq As String
    Dim codigocontrato As Variant
    Dim mensagem As String

    codigocontrato = "[NumeroLCcontrato] = '" & Me.TXTNUMLC_CONT & "'"
    If IsNull(DLookup("[NumeroLCcontrato]", "[CADASTRO DE LICITAÇÃO]")) Then

       mensagem = "O CFM 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 Compras"
       '
    cadcontrato = False

       Me.TXTNUMLC_CONT.SetFocus

       Exit Sub
       
    End If
       Dim dbs As Database, rst As Recordset
       Dim strsql As String
       
       
       Set dbs = CurrentDb
       
       strsql = "SELECT DISTINCTROW  [NumeroLCcontrato] " & _
           " FROM [Cadastro Contrato] " & _
           " WHERE [Cadastro Contrato]![NumeroLCcontrato] = '" & Me.TXTNUMLC_CONT & "' "
           
     
       Set rst = dbs.OpenRecordset(strsql, dbOpenSnapshot)

         
    codigocontrato = "[Numerodocontrato] = '" & Me.txtnumerocontrato & "'"

    If Not IsNull(DLookup("[NUMERO LC]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)) Then
    Me.TOTALESTIMADOCONT = (DLookup("[VALOR TOTAL ESTIMADO]", "[CADASTRO DE LICITAÇÃO]", codigocontrato))
    End If
       
    If Not IsNull(DLookup("[NUMERO LC]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)) Then
    Me.txtModalidadeCont = DLookup("ModalidadeCadRC", "[CADASTRO DE LICITAÇÃO]", codigocontrato)
     End If

    If Not IsNull(DLookup("[NUMERO LC]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)) Then
    COMPRADORcont = DLookup("COMPRADOR", "[CADASTRO DE LICITAÇÃO]", codigocontrato)
                       
    End If


     If Not IsNull(DLookup("[NUMERO LC]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)) Then
    Me.txtobjetocont = DLookup("[OBJETO DA LICITAÇÃO]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)
     End If

    If Not IsNull(DLookup("[NUMERO LC]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)) Then
          AreaCont = DLookup("[SIGLA DO PROCESSO]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)
    End If
             

    If Not IsNull(DLookup("[NUMERO LC]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)) Then
          txtPrazoCont = DLookup("Prazo", "[CADASTRO DE LICITAÇÃO]", codigocontrato)
    End If

    If Not IsNull(DLookup("[NUMERO LC]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)) Then
          txtTipoPrazoCont = DLookup("[Tipo do prazo]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)
    End If
       
         

      cadcontrato = True
     
    End Sub
    [

    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 vba

    Mensagem  Dery_santos em Qua 23 Nov 2016, 16:27

    Pessoal eu achei que havia resolvido o código no entanto eles esta funcionando só que em vez ele trazer as informações certas ele esta pegando sempre as informações do primeiro registro , o códígo que usei é o seguinte


    Dim Seq As String
    Dim codigocontrato As Variant
    Dim mensagem As String

    codigocontrato = "[NumeroLCcontrato] = '" & Me.TXTNUMLC_CONT & "'"
    If IsNull(DLookup("[NumeroLCcontrato]", "[CADASTRO DE LICITAÇÃO]")) Then

    mensagem = "O CFM 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 Compras"
    '
    cadcontrato = False

    Me.TXTNUMLC_CONT.SetFocus

    Exit Sub

    End If
    Dim dbs As Database, rst As Recordset
    Dim strsql As String


    Set dbs = CurrentDb

    strsql = "SELECT DISTINCTROW [NumeroLCcontrato] " & _
    " FROM [Cadastro Contrato] " & _
    " WHERE [Cadastro Contrato]![NumeroLCcontrato] = '" & Me.TXTNUMLC_CONT & "' "


    Set rst = dbs.OpenRecordset(strsql, dbOpenSnapshot)


    codigocontrato = "[Numerodocontrato] = '" & Me.txtnumerocontrato & "'"

    If Not IsNull(DLookup("[NUMERO LC]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)) Then
    Me.TOTALESTIMADOCONT = (DLookup("[VALOR TOTAL ESTIMADO]", "[CADASTRO DE LICITAÇÃO]", codigocontrato))
    End If

    If Not IsNull(DLookup("[NUMERO LC]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)) Then
    Me.txtModalidadeCont = DLookup("ModalidadeCadRC", "[CADASTRO DE LICITAÇÃO]", codigocontrato)
    End If

    If Not IsNull(DLookup("[NUMERO LC]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)) Then
    COMPRADORcont = DLookup("COMPRADOR", "[CADASTRO DE LICITAÇÃO]", codigocontrato)

    End If


    If Not IsNull(DLookup("[NUMERO LC]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)) Then
    Me.txtobjetocont = DLookup("[OBJETO DA LICITAÇÃO]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)
    End If

    If Not IsNull(DLookup("[NUMERO LC]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)) Then
    AreaCont = DLookup("[SIGLA DO PROCESSO]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)
    End If


    If Not IsNull(DLookup("[NUMERO LC]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)) Then
    txtPrazoCont = DLookup("Prazo", "[CADASTRO DE LICITAÇÃO]", codigocontrato)
    End If

    If Not IsNull(DLookup("[NUMERO LC]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)) Then
    txtTipoPrazoCont = DLookup("[Tipo do prazo]", "[CADASTRO DE LICITAÇÃO]", codigocontrato)
    End If



    cadcontrato = True

    End Sub
    avatar
    cleverson_manaus
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 799
    Registrado : 23/09/2011

    Re: [Resolvido]Ajuda com código vba

    Mensagem  cleverson_manaus em Qua 23 Nov 2016, 21:16

    Como disse anteriormente, se puder postar uma cópia do arquivo somente com a parte do problema ajuda bastante!!!!

    Abraços


    .................................................................................
    [Você precisa estar registrado e conectado para ver esta imagem.]

    "É fazendo que se aprende a fazer aquilo que se deve aprender a fazer."(Aristóteles)
    - Dúvida resolvida!!! Marcar o tópico como resolvido!!!

    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 vba

    Mensagem  Dery_santos em Sex 02 Dez 2016, 10:26

    Obrigado consegui resolver fazendo os códigos o erro estava no campo pelo usado para fazer filtro, desculpa não mandei a amostra pois o banco tem varias tabelas e formulários e não daria pra mandar só uma parte dele , acho que ficaria pesado pra mandar completo, mas muito obrigado

      Data/hora atual: Qui 23 Nov 2017, 01:40