Olá! Hoje vamos usar o Microsoft Excel para conectar ao nosso banco de dados criado no Microsoft SQL Server, consultar uma tabela e importar seus registros, mas vamos usar um código em VBA para isso.
- Design-time:
Sub ObterDadosDeBancoDeDados()
Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Dim conString As String
Dim sqlString As String
Set con = New ADODB.Connection
Set rs = New ADODB.Recordset
conString = "Provider=SQLOLEDB;" & _
"Data Source=DESKTOP-CRJM4TM\SQLEXPRESS;" & _
"Initial Catalog=db_Concessionaria;" & _
"Integrated Security=SSPI"
sqlString = "SELECT * FROM tb_Veiculo"
con.Open conString
Set rs = con.Execute(sqlString)
Sheets(1).Range("A2").CopyFromRecordset rs
rs.Close
con.Close
Set con = Nothing
Set rs = Nothing
End Sub
- Runtime:
- Sintaxe:
Para que o código VBA funcione é necessário certificar-se de que a última referência do ADO (ActiveX Data Object) esteja disponível. Isto pode ser conferido e providenciado no menu Ferramentas do Editor de VBA (aberto via teclas Alt+F11):
Este é um exemplo simplificado.
Nas linhas 2-5 são declarados os objetos Connection (conexão física com a fonte de dados) e Recordset (conjunto de registros ou linhas da tabela) e as strings com os parâmetros da conexão e com o comando SQL a ser executado. Em seguida, nas linhas 7-8 e 10-15, os objetos e as strings são inicializados.
As linhas 17-20 contêm a abertura da conexão, a execução do comando SQL e a cópia dos registros na planilha a partir da célula A2.
Finalmente a conexão e o conjunto de registros são fechados (linhas 22-23) e descartados (linhas 25-26).
Curiosidade: também via VBA os registros podem ser obtidos ou importados de diversas fontes, bancos de dados e arquivos, inclusive outras worksheets no mesmo workbook ou não e arquivos de texto/CSV, como ilustrado a seguir.
- Reflexão:
Além do Congresso aprovar veto à criminalização de fake news, a outra notícia preocupante nesta semana é que as fake news sobre a tragédia e o negacionismo climático no RS estão gerando lucro no YouTube! Enquanto isso, a extrema direita cresce em toda a Europa e em Israel ela ameaça romper com o governo se a nova proposta americana de cessar fogo prosperar.