Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Dúvidas sobre as ferramentas Power Query, Power Pivot, Power View, Power Maps. Dúvidas sobre Power BI use a sessão específica
  • Avatar do usuário
Por brkz
Posts
#30507
Olá pessoal,
bom dia a todos.

Estou com uma dúvida. Estou montando uma planilha que eu vou inserir alguns CPFs e tenho que consultar no banco de dados SQL Server e o retornar irá popular uma outra aba no Excel. Alguém poderia me indicar como posso fazer essa consulta? Queria separar uma coluna no excel para a pessoa inserir os dados e realizar a consulta.
Avatar do usuário
Por Basole
Posts Avatar
#30512
Segue exemplo de consulta ao um sql server
Código: Selecionar todos
Public c As New ADODB.Connection

Sub Selecionar_dados_sql_where()
    '   PRECISA HABILITAR A REFERENCIA MICROSOFT ACTIVEX DATA OBJECTS x.xx LIBRARY
    Dim banco, banco2 As ADODB.Recordset
    Dim sql As String 'STRING DE COMANDO
    Dim sql2 As String
    
    'O COMANDO PARA SELECIONAR DADOS É O SELECT
    sql = "SELECT * from SUPPLIERS" & _
    " WHERE  SETOR = 'LOGISTICA'" 'A CLÁUSULA WHERE BUSCA APENAS
    'TODOS FUNCIONÁRIOS DO SETOR DE LOGISTICA
    
    'SELECIONA O BANCO
    sql2 = "USE Northwind"
    
    Set banco = New ADODB.Recordset
    Set banco2 = New ADODB.Recordset
    
    'CONEXÃO ABERTA
    nConectar
    
    'TRATAMENTO DE ERROS
    On Error GoTo erro
    
    'OPERAÇÃO EXECUTADA
    banco2.Open sql2, c
    banco.Open sql, c
    
    Dim xls As Excel.Worksheet
    Set xls = Sheets("plan1")
    
    xls.Range("A1").CopyFromRecordset banco
    
    'DESCONECTAR E LIMPAR MEMORIA
    Desconectar
    Set banco = Nothing
    Set banco2 = Nothing
    Exit Sub
    'CASO HAJA ERRO
erro:
    MsgBox Err.Description
    cx.Desconectar
    Set banco = Nothing
    Set banco2 = Nothing
    
End Sub

Public Sub nConectar()
    Dim s As String
    
    s = "PROVIDER=SQLOLEDB;" 'UTILIZADA QUANDO A AUTENTICAÇÃO É VIA USUÁRIO WINDOWS
    s = s & "DATA SOURCE=NOME_DO_PC\SQLEXPRESS;DATABASE=;TRUSTED_CONNECTION=YES"
    's = s & " INTEGRATED SECURITY=sspi;"
    
    c.Open s
    
End Sub

Public Sub Desconectar()
    c.Close
End Sub

Por brkz
Posts
#30523
Obrigado amigo! tenho um pouco de dificuldade em conexão pelo VBA. Procurei pela internet e via que se usa ADBO, mas não conseguir entender o conceito para realizar a conexão com meu banco. Poderia ser me passar detalhes por gentileza? Muito obrigado!
Avatar do usuário
Por Basole
Posts Avatar
#30525
Sim pode-se usar Ado ou Dao.
Bom no exemplo que postei voce precisa alterar as variaveis de acordo com as suas informações.

Por exemplo:
Na linha " s = s & "DATA SOURCE=NOME_DO_PC\SQLEXPRESS;DATABASE=;TRUSTED_CONNECTION=YES""
Onde esta "NOME_DO_PC", coloca o nome do pc ou endereço (ip, etc), onde esta instalado o serverSql.
Em SqlExpress, o nome do servidor sql, o seu Server Sql.
Nome da tabela "SUPPLIERS" altere para o nome da tabela que deseja consultar.
Campo SETOR = 'LOGISTICA', campo setor e 'logistica' é o filtro, ou seja serão importados todos os dados do setor logistica.
Nesta linha sql2 = "USE Northwind" substitua para o nome do seu banco de dados
Nesta linha Set xls = Sheets("plan1"), altere o nome da planilha (aba).
Nesta linha xls.Range("A1").CopyFromRecordset banco, Range("A1"), a 1ª celula que ser inserido os dados.

Tome cuidado para não remover nenhuma aspas simples, ou só desconsidere se no campo de pesquisa a variável tiver a formatação numérica.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord