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

    Exibir consultas SQL feitas em Access

    Compartilhe

    luizsd942
    Novato
    Novato

    Respeito às Regras 100%

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

    Exibir consultas SQL feitas em Access

    Mensagem  luizsd942 em Ter 01 Abr 2014, 18:55

    Olá,
    Estou tentando fazer um Select no VBA e exibir o resultado, seja em uma folha de dados, uma ViewPreview.
    O meu código está da seguinte maneira na função Function ConsultaSQL(codS):

    Function ConsultaSQL(codS As Integer)
       Dim connector As ADODB.Connection
       Dim rs As ADODB.Recordset
       Dim SQL As String
       
       Set connector = New ADODB.Connection
       connector.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = H:\Projeto Acces\bdAltAdm.mdb;"
       
       'Verifica se a conexão foi efetivamente efetuada
       If connector.State = adStateOpen Then
           'MsgBox " Conexão ativa "
       Else
           MsgBox " Não foi possível efetuar a Conexão com o banco de dados! "
       End If
           
       Set rs = New ADODB.Recordset
       rs.ActiveConnection = connector
       
       rs.Open "TEL"
       
       Set rs = connector.Execute("SELECT NOME, EMPRESA FROM TEL where situacao = codS;")
       SQL = SQL & rs("NOME") & " - " & rs(EMPRESA)
       'Do While rs.NextRecordset
       '   SQL = SQL & rs("NOME") & " - " & rs(EMPRESA)
       'Loop
       

           rs.Close
       
       ConsultaSQL = SQL
       
       Set rs = Nothing

       connector.Close
       Set connector = Nothing

    End Function

    -------------------------------
    e faço a chamada da função:

    Private Sub Comando2_Click()

    Dim teste As Integer

    me.nomeResult = ConsultaSQL(Me.codS)

    End Sub
    -------------------------------


    Estou passando como parâmetro o código da situação, mas é gerado o erro: Nehum valor foi fornecido para um ou mais parâmetros, na linha;
    Set rs = connector.Execute("SELECT NOME, EMPRESA FROM TEL where situacao = codS;")...

    Mas se eu colocar o código da situação direto no SELECT e liberar o trecho do código:

       'Do While rs.NextRecordset
       '   SQL = SQL & rs("NOME") & " - " & rs("EMPRESA")
       'Loop

    aí ocorre o erro de que "O provedor atual não oferece suporte para retornar vários conjuntos de registros de uma única execução.".

    Eu sei que posso fazer através de uma consulta no Access e exibir no openQuery, mas o meu objetivo está no VBA.
    Quem puder me ajudar eu agradeço.

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5889
    Registrado : 05/11/2009

    Re: Exibir consultas SQL feitas em Access

    Mensagem  Alexandre Neves em Ter 01 Abr 2014, 22:15

    Boa noite,
    tente
    Set rs = connector.Execute("SELECT NOME, EMPRESA FROM TEL where situacao=" & codS)


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    luizsd942
    Novato
    Novato

    Respeito às Regras 100%

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

    Retornando mais de um dado.

    Mensagem  luizsd942 em Qua 02 Abr 2014, 17:24

    Obrigado Alexandre Neves,

    Resolveu o problema da consulta com código, mas e como faço para exibir mais de um dado, seja em um SubForm ou em uma folha de dados preferencialmente?
    Por exemplo, se digitar situação =1, retornará mais de uma pessoa.

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5889
    Registrado : 05/11/2009

    Re: Exibir consultas SQL feitas em Access

    Mensagem  Alexandre Neves em Qua 02 Abr 2014, 21:01

    Boa noite,
    Não chame a função. Execute o código directamente e
    onde tem
    ConsultaSQL = SQL

    coloque
    TxtA= rs("NOME") & " - " & rs(EMPRESA)
    rs.MoveNext
    TxtB= rs("NOME") & " - " & rs(EMPRESA)


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

      Data/hora atual: Sex 09 Dez 2016, 13:28