Você está na página 1de 2

Sub Executa_SQL_PG(rSql As String, rPlaSaida As String, rCelSaida As String, rIP

As String, rPorta As String, rBanco As String, rUsuario As String, rSenha As St


ring, rSchema As String)
'Esta função conecta no banco de dados, executa o sql e devolve na celula indica
da
' rSql => Comando a ser executado
' rPlaSaida => Nome da planilha onde os dados vão retornar. Se em branco, reto
rna na atual
' rCelSaida => Endereço de Célula onde os dados vão sair. Se em branco, retorna na
A5
' rIP => IP do servidor
' rPorta => Porta onde conectar
' rBanco => Nome do Banco de Dados
' rUsuario => Nome do Usuario
' rSenha => Senha do Usuário
' rSchema => Schema a considerar

Dim cnt As ADODB.Connection


Dim rst As ADODB.Recordset
Dim stSQL As String
Dim wbBook As Workbook
Dim wsSheet As Worksheet
Dim rnStart As Range
Dim stADO As String
' valida planilha de saida
If rPlaSaida <> "" Then
Sheets(rPlaSaida).Select
End If
' valida celula de saida
If rCelSaida = "" Then
rCelSaida = "A5"
End If
stADO = "Driver={PostgreSQL UNICODE};Server=" & rIP & ";Port=" & rPorta & ";
Database=" & rBanco & ";Uid=" & rUsuario & ";Pwd=" & rSenha & ";"
Set wbBook = ActiveWorkbook
Set wsSheet = wbBook.Worksheets(rPlaSaida)
With wsSheet
Set rnStart = .Range(rCelSaida)
End With
stSQL = rSql
Set cnt = New ADODB.Connection
With cnt
.CursorLocation = adUseClient
.Open stADO
.CommandTimeout = 5000000
Set rst = .Execute(stSQL)
End With
'Here we add the Recordset to the sheet from A1
rnStart.CopyFromRecordset rst
'Cleaning up.
rst.Close
cnt.Close
Set rst = Nothing
Set cnt = Nothing
End Sub

Você também pode gostar