Public Sub AbreRecordSet(sql As String, ActCnn As ADODB.Connection)
Dim boxResult As VbMsgBoxResult
Dim rs As ADODB.Recordset
Dim plan As Worksheet
On Error Resume Next
'VERIFICANDO SE HÁ CONEXÃO EXISTENTE
If ActCnn.State <> 1Then
Do
boxResult = MsgBox("Falha na conexão, deseja conectar ao banco?", vbYesNo + vbCritical)
If boxResult = vbYes Then
Call ConectaBanco
Else
MsgBox "Sem a conexão é impossível continuar, a operação foi abortada.", vbCritical
End
End If
Loop While ActCnn.State <> 1
End If
'É CRIADO UMA NOVA SHEET(ABA) NO WORKBOOK
Set plan = ActiveWorkbook.Sheets.Add
'EXECUTA A INSTRUÇÃO SQL NA CONEXÃO EXISTENTE E GRAVAR NA MEMORIA
On Error Goto falhou:
rs.Open sql, ActCnn, adOpenStatic, adLockReadOnly, adCmdText
falhou:
MsgBox "A instrução SQL não pode ser executada"
'COPIA OS REGISTROS RETORNADOS DA CONSULTA QUE ESTÃO EM MEMORIA E COPIA NA ABA CRIADA
plan.Range("A1").CopyFromRecordset rs.Open
'OUTRA FORMA DE COPIAR OS REGISTROS DA MEMORIA PARA A PLANILHA
'ESTE COMANDO TRÁS O CABEÇALHO DA CONSULTA, O ACIMA TRÁS APENAS OS DADOS
'>>> plan.QueryTables.Add(rs, plan.Range("A1")).Refresh
End Sub
Deixe sua sugestão, elogio ou reclamação para o blog.
EmoticonEmoticon