Crear consultas SQL en Excel

23 nov 2018

Crear consultas SQL en Excel


Las consultas en SQL son muy importantes, aunque en la actualidad hay muchas herramientas que nos ayudan a crear conexiones SQL,  pero por eficiencia les comparto una macro para realizar las consultas más rápida.
Para que la macro funcione hay que seguir los siguientes pasos:
1. Abrir el editor Visual Basic para Aplicaciones (VBA).
2. Insertar un módulo.
3. Agregar la referencia "Microsoft ActiveX Data Objects 2.0 Library" en el menú herramientas del editor VBA, dar click en referencias.
3. Pegar el siguiente código en el módulo que se inserto:

Sub SQL_Consulta()
    Hoja1.Cells.Clear 'limpiar consultas anteriores
    Dim oCn As ADODB.Connection
    Dim oRS As ADODB.Recordset
    Dim ConnString As String
    Dim SQL As String
    Dim CMDStoredProc As ADODB.Command
    Dim CnnConexion As ADODB.Connection
    Dim RcsDatos As ADODB.Recordset
    Dim CadConexion As String 'Cadena de conexión
    Dim RecordsAffected As Long
    'Cadena de conexión
    Dim Servidor As String
    Dim Usuario As String
    Dim Contrasena As String
    Dim BaseDatos As String

    Servidor = Hoja2.Range("B1")
    Usuario = Hoja2.Range("B3")
    Contrasena = Hoja2.Range("B4")
    BaseDatos = Hoja2.Range("B2").Value
    ' Cadena de conexión
    ConnString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" & Usuario & ";Pwd=" & Contrasena & ";Initial Catalog=" & BaseDatos & ";Data Source=" & Servidor & ""
    Set oCn = New ADODB.Connection
    oCn.ConnectionString = ConnString
    oCn.Open
    SQL = Hoja2.Range("B5").Value ' Consulta en SQL
    Set oRS = New ADODB.Recordset
    oRS.Source = SQL
    oRS.ActiveConnection = oCn
    oRS.Open
    Hoja1.Range("A2").CopyFromRecordset oRS ' Hoja de destino
    If oRS.State <> adStateClosed Then
    oRS.Close
    End If

  

    If Not oRS Is Nothing Then Set oRS = Nothing

    If Not oCn Is Nothing Then Set oCn = Nothing

End Sub


Descargar el archivo

0 comments :

Publicar un comentario