Página 1 de 1

Importar dados específicos do BD SQL para o Excel com filtro

Enviado: 12 Mai 2017 às 15:15
por JaimeBezerra
Boa tarde!!

Estou tentando extrair informações específicas do Banco de dados do meu ERP (SQL), pesquisei e copiei uma macro com esta finalidade, fiz as correções mais óbvias para um leigo, BD, Servidor, ID, senha e etc... .
Quando rodo a macro esta retorna um erro de SQL Server inexistente ou acesso negado, conforme imagem no link:

Imagem

Utilizo o pacote Office 2007, o ID, senha, Servidor, BD, Tabela, tudo isto está correto pois vez ou outra acabo importando via conexão de Dados externos do próprio excel, poderia até seguir nesta linha, se não fosse a quantidade de campos específicos de cada tabela que preciso extrair e mais ainda, o tamanho atual de cada uma das tabelas, por isso preciso trazer apenas alguns campos específicos com filtros.

Agradeço o auxílio, segue abaixo a macro:
Código (Text):
Sub ImportardadosSQL()

' habilite a ref. Microsoft ActiveX Data Objects 2.8 Library

Dim cnn As New ADODB.Connection

Dim rst As New ADODB.Recordset

Dim ConnectionString As String

Dim StrQuery As String, PASS As String, UserName As String, REMOTE_IP_ADDRESS As String, DATABASE As String


' insira os dados (entre aspas), abaixo:

PASS = ""

UserName = ""

REMOTE_IP_ADDRESS = ""

DATABASE = ""

cnn.ConnectionString = "Provider=SQLOLEDB.1;Password=PASS;Persist Security Info=True;User ID=UserName;Data Source=REMOTE_IP_ADDRESS;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=DATABASE"


cnn.Open

cnn.CommandTimeout = 900


StrQuery = "SELECT * FROM transcli " & "WHERE sinal like 'D'"


rst.Open (StrQuery), cnn



'rst.Open StrQuery, cnn


'insere os dados em plan1


Sheets("transcli").Range("A1").CopyFromRecordset rst


End Sub

Importar dados específicos do BD SQL para o Excel com filtro

Enviado: 13 Mai 2017 às 16:09
por Reinaldo
Em lugar algum da conexão aparece o endereço do servidor da dados , assim creio eu o problema reside ai.
Talvez lhe ajude https://www.connectionstrings.com/sql-server-2008/

Re: Importar dados específicos do BD SQL para o Excel com fi

Enviado: 15 Mai 2017 às 08:17
por JaimeBezerra
Reinaldo, bom dia!!

Agradeço a resposta, na verdade todas as informações de endereço de servidor, nome do BD, usuário e senha estão preenchidos na macro que está rodando, só no exemplo que deixei estes campos "vazios".

Agradeço a indicação do site, vou dar uma olhada com mais calma para tentar descobrir qual o meu erro no processo.

Grato

Re: Importar dados específicos do BD SQL para o Excel com fi

Enviado: 18 Mai 2017 às 14:46
por JaimeBezerra
Boa tarde!!

Após garimpar bastante na internet encontrei a solução para esta questão, estou anexando abaixo a macro que funciona com perfeição:

Obs.: Lógicamente o nome de usuário, senha, servidor, e banco deverão ser ajustados para a realidade de cada um.

Sub extraidadosSQL()


' habilite a ref. Microsoft ActiveX Data Objects X.XX Library

Dim cnn As ADODB.Connection

Dim rst As ADODB.Recordset

Dim wrkst As String

Dim StrQuery As String


Set cnn = New ADODB.Connection

cnn.ConnectionString = "driver={SQL Server};server=dsrv03;uid=usuário;pwd=senha;database=EverestTeste"


cnn.CommandTimeout = 30

cnn.Open


Set rst = New ADODB.Recordset


StrQuery = "SELECT * FROM transcli " & "WHERE sinal like 'D'"


rst.Open StrQuery, cnn


Sheets("transcli").Range("A1").CopyFromRecordset rst


rst.Close


cnn.Close


End Sub