MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

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 : 12
    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

    cleverson_manaus
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 620
    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!!! Tópico resolvido!!!!

    Dery_santos
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    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 : 12
    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

    cleverson_manaus
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 620
    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!!! Tópico resolvido!!!!

    Dery_santos
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    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: Seg 05 Dez 2016, 04:26