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

    Consulta em SQL perde conexao com o banco SQL

    Compartilhe

    ilvecchio
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 132
    Registrado : 16/11/2012

    Consulta em SQL perde conexao com o banco SQL

    Mensagem  ilvecchio em Qui 16 Jul 2015, 18:32

    Buenas!
    Criei algumas consultas SQL em substituição a tabelas vinculadas à uma base SQL.
    Porém, eventualmente a consulta simplesmente perde a conexão.

    A instrução da consulta é assim:

    SELECT * FROM dbo.Tabela001 IN '' [ODBC;Driver={SQL Server};SERVER=CONT99440;DATABASE=CONTABIL;UID=ADM;PWD=ADM875@];

    Quando percebo a ausencia da conexão, verifico que a consulta está assim:

    SELECT * FROM [dbo].Tabela001 IN '' [ODBC;Driver={SQL Server};SERVER=CONT99440;DATABASE=CONTABIL;UID=ADM;PWD=ADM875@];

    O Access(2003) coloca os colchetes em torno do termo dbo.


    Porque isso ocorre?
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: Consulta em SQL perde conexao com o banco SQL

    Mensagem  Alexandre Neves em Sex 17 Jul 2015, 08:59

    Bom dia,
    Esses colchetes (parêntisis rectos) servem para que o nome nele contido seja considerado um só. Se o nome tiver um espaço faz toda a diferença entre ter o nome envolvido por parêntisis ou não. Nada mais


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

    ilvecchio
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 132
    Registrado : 16/11/2012

    Re: Consulta em SQL perde conexao com o banco SQL

    Mensagem  ilvecchio em Sex 17 Jul 2015, 12:17

    Tá.
    Permanece a questão: porque o Access coloca, voluntariamente, esses colchetes? Pois quando isso acontece ocorre o erro, vez que a tabela não se chama [dbo].Tabela001 e sim dbo.Tabela001.
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: Consulta em SQL perde conexao com o banco SQL

    Mensagem  Alexandre Neves em Sex 17 Jul 2015, 12:20

    Se a tabela se chama dbo.Tabela001, experimente [dbo.Tabela001]


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

    ilvecchio
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 132
    Registrado : 16/11/2012

    Re: Consulta em SQL perde conexao com o banco SQL

    Mensagem  ilvecchio em Seg 20 Jul 2015, 14:27

    Buenas!
    Vou contar a história completa.

    1) SELECT * FROM [dbo].Tabela001 IN '' [ODBC;Driver={SQL Server};SERVER=CONT99440;DATABASE=CONTABIL;UID=ADM;PWD=ADM875@];

    2) Quando percebo que o access colocou os colchetes em torno do termo dbo, altero colocando, novamente, os colchetes no início e no fim do nome da tabela: [dbo.Tabela001]
    3) Salvo e abro a consulta. Funciona.
    4) Abro consulta no modo design e constato que o Access retirou os colchetes:
      SELECT * FROM dbo.Tabela001 IN '' [ODBC;Driver={SQL Server};SERVER=CONT99440;DATABASE=CONTABIL;UID=ADM;PWD=ADM875@];

    Até aqui tudo bem. Porém, quando eu distribuir os Front-end (.mde) e, isso ocorrer, o banco não funcionará.

    Tentando solucionar o problema pensei usar um código que fizesse a alteração sempre que o banco fosse aberto. Consegui este no site do OsmarJR:

    Sub MudaSQL()
       'Cortesia de JR - Mai/2005.
       Dim db As DAO.Database, qdf As QueryDef
       Set db = CurrentDb
       Set qdf = db.QueryDefs("Tabela001")
       qdf.sql = "SELECT * FROM [dbo.Tabela001] IN '' [ODBC;Driver={SQL Server};SERVER=CONT99440;DATABASE=CONTABIL;UID=ADM;PWD=ADM875@];"
       Set qdf = Nothing
       Set db = Nothing
    End Sub

    5) O código cumpre o que promete, e faz a alteração. Contudo a consulta não funciona.
    6) Estranhamente, o problema se resolve assim:
    7) Abro a consulta no modo design, e arrasto todos os campos pelo asterisco para a grade, criando uma só coluna.
    Cool Ato contínuo, excluo a coluna e salvo.
    9) Pronto, a consulta volta a mostrar os registros.


    É claro que esta não é a solução, pois os usuários não poderão adotá-la.
    Então, volto à estaca zero.

    Como saio desta?
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: Consulta em SQL perde conexao com o banco SQL

    Mensagem  Alexandre Neves em Ter 21 Jul 2015, 10:25

    Bom dia,
    Vá a uma bd que a consulta funcione, abra-a em modo SQL e veja o código guardado.


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

    ilvecchio
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 132
    Registrado : 16/11/2012

    Re: Consulta em SQL perde conexao com o banco SQL

    Mensagem  ilvecchio em Ter 21 Jul 2015, 16:02

    Bom dia, Alexandre.

    A consulta armazenada está sem os colchetes, como deveria ser:

    SELECT * FROM dbo.Tabela001 IN '' [ODBC;Driver={SQL Server};SERVER=CONT99440;DATABASE=CONTABIL;UID=ADM;PWD=ADM875@];

    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: Consulta em SQL perde conexao com o banco SQL

    Mensagem  Alexandre Neves em Ter 21 Jul 2015, 16:08

    Então, coloque a consulta sem colchetes, senão, será estranho


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

    ilvecchio
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 132
    Registrado : 16/11/2012

    Re: Consulta em SQL perde conexao com o banco SQL

    Mensagem  ilvecchio em Qua 22 Jul 2015, 19:20

    O código para alterar a consulta só funciona se colocar o nome da tabela entre colchetes. Se não o fizer, a consulta permanece com os colchetes em torno do termo dbo.

      Data/hora atual: Qui 20 Jul 2017, 15:36