MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Realizar select ao sair de formulario

    avatar
    vaner
    Novato
    Novato

    Respeito às Regras 100%

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

    [Resolvido]Realizar select ao sair de formulario Empty [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.
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    [Resolvido]Realizar select ao sair de formulario Empty 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!
    avatar
    vaner
    Novato
    Novato

    Respeito às Regras 100%

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

    [Resolvido]Realizar select ao sair de formulario Empty 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.
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    [Resolvido]Realizar select ao sair de formulario Empty 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!
    avatar
    vaner
    Novato
    Novato

    Respeito às Regras 100%

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

    [Resolvido]Realizar select ao sair de formulario Empty 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.
    avatar
    vaner
    Novato
    Novato

    Respeito às Regras 100%

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

    [Resolvido]Realizar select ao sair de formulario Empty Re: [Resolvido]Realizar select ao sair de formulario

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

    Obrigado.

      Data/hora atual: 19/10/2020, 22:59