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]Realizar select ao sair de formulario

    Compartilhe

    vaner
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 26/04/2014

    [Resolvido]Realizar select ao sair de formulario

    Mensagem  vaner em 7/3/2018, 13:57

    Bom dia pessoal.

    Me recorro ao fórum porque não estou conseguindo fazer o seguinte procedimento.

    Possuo um formulário e e dado campo de controle (Código) preciso que ao perder foco seja executado uma pesquisa em outra tabela, onde deverá retornar o nome do agente ao qual aquele formulário pertence. Para fins de controle.

    Código:
    Private Sub Código_LostFocus()
    Dim variavel As String

    If Me.Código <> "" Then
    variavel = Me.Código.Value
    txtAgente = "SELECT Blocos.agente FROM Agente INNER JOIN Blocos ON Agente.[Nome de Guerra] = Blocos.agente WHERE (((Blocos.inicial)<='" & variavel & "' AND ((Blocos.final)>='" & variavel & "'))"
     End If
    End Sub

    No campo texAgente retorna o texto da SQL e não o valor final.


    Na modalidade de consulta access, onde eu digito o valor no campo de pesquisa, este é retornado corretamente.

    A consulta usa a seguinte SQL

    Código:
    SELECT Blocos.agente
    FROM Agente INNER JOIN Blocos ON Agente.[Nome de Guerra] = Blocos.agente
    WHERE (((Blocos.inicial)<=[DIGITE A AIT]) AND ((Blocos.final)>=[DIGITE A AIT]));

    Contudo quero automatizar o processo no formulário de lançamento.


    Desde já agradeço.
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Realizar select ao sair de formulario

    Mensagem  FabioPaes em 7/3/2018, 18:43

    Olá, em caixas de Textos não será possível aplicar valores dessa forma... Somente Caixa de Listagem ou Caixa ed Combinação aceitam esse tipo de consulta, mas na propriedade correta...

    Para o que precisa, deverá fazer através de RecordSet ou ate mesmo utilizando Dlookup()

    Após o IF coloque:

    Dim rs As DAO.Recordset
    Dim DB As Database
    Dim Variavel As Variant


    Variavel = Me.[Código].Value
    Set DB = CurrentDb()
    Set rs = DB.OpenRecordset("SELECT Blocos.agente FROM Agente INNER JOIN Blocos ON Agente.[Nome de Guerra] = Blocos.agente WHERE (((Blocos.inicial)<='" & Variavel & "') AND ((Blocos.final)>='" & Variavel & "'))")
    Me.txtAgente = rs!Agente


    Set rs = Nothing
    Set DB = Nothing
    rs.Close
    DB.Close


    Deverá Funcionar, se o SELECT passado estiver correto...


    .................................................................................
    _____________________________________________________________________
    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!

    vaner
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 26/04/2014

    Re: [Resolvido]Realizar select ao sair de formulario

    Mensagem  vaner em 13/3/2018, 13:45

    Bom dia.

    Obrigado FabioPaes.

    Da seguinte forma está funcionando.


    Código:

    Dim rs As DAO.Recordset
    Dim DB As Database
    Dim Variavel As Variant
    Form_MULTAS.txtAgente = ""
    Variavel = ""
    Variavel = Form_MULTAS.[Código].Value
    Set DB = CurrentDb()
    Set rs = DB.OpenRecordset("SELECT Blocos.agente FROM Agente INNER JOIN Blocos ON Agente.[Nome de Guerra] = Blocos.agente WHERE (((Blocos.inicial)<='" & Variavel & "') AND ((Blocos.final)>='" & Variavel & "'))")
        If Not rs.BOF Then
        Form_MULTAS.txtAgente = rs!agente


        Set rs = Nothing
        Set DB = Nothing
        End If
        
    Variavel = ""
    Set rs = Nothing
    Set DB = Nothing


    Só o rs.Close e o DB.Close que eu tirei pois estava retornando erro.

    Erro em tempo de execução '91'. A variavel do objeto ou a variavel do bloco 'with' não foi definida.
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Realizar select ao sair de formulario

    Mensagem  FabioPaes em 13/3/2018, 18:14

    Grato pelo retorno!

    O rs.Close esta dando Erro pq ele tem que está antes do Set rs=Nothing. Inverti as coisas ali...

    rs.Close (Fecha a Conexção)
    Set rs = Nothing (Limpa a memoria que estava com os dados aberto do record set)

    Por favor, marque o tópico como resolvido!


    .................................................................................
    _____________________________________________________________________
    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!

    vaner
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 26/04/2014

    Re: [Resolvido]Realizar select ao sair de formulario

    Mensagem  vaner em 13/3/2018, 18:30

    Realmente.

    O problema foi solucionado.

    o código final ficou:

    Código:

    Dim rs As DAO.Recordset
    Dim DB As Database
    Dim Variavel As Variant
    Form_MULTAS.txtAgente = ""
    Variavel = ""
    Variavel = Form_MULTAS.[Código].Value
    Set DB = CurrentDb()
    Set rs = DB.OpenRecordset("SELECT Blocos.agente FROM Agente INNER JOIN Blocos ON Agente.[Nome de Guerra] = Blocos.agente WHERE (((Blocos.inicial)<='" & Variavel & "') AND ((Blocos.final)>='" & Variavel & "'))")
        
        If Not rs.BOF Then
        Form_MULTAS.txtAgente = rs!agente
        End If
        
    rs.Close
    DB.Close
    Variavel = ""
    Set rs = Nothing
    Set DB = Nothing


    Mais uma vez, obrigado pela ajuda.

    vaner
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 26/04/2014

    Re: [Resolvido]Realizar select ao sair de formulario

    Mensagem  vaner em 13/3/2018, 18:32

    Obrigado.

      Data/hora atual: 14/11/2018, 11:51