Conexión SQL Server Macro Excel

Para realizar una conexión Excel Macro a SQL Server se realiza de la siguiente forma:

Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim ConnectionString As String
Dim StrQuery As String
    
ConnectionString = "Provider=SQLOLEDB.1;Password=pass;Persist Security Info=True;User ID=usuario;Data Source=ruta_SQLSERVER;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=BASE_DE_DATOS"

cnn.Open ConnectionString
cnn.CommandTimeout = 900

StrQuery = "SELECT * FROM TABLA"
rs.Open StrQuery, cnn

'para recorrer los datos obtenidos de la query se puede usar lo siguiente
rs.MoveFirst
Do While rs.EOF = False
        Debug.Print (rs!CampoSql)
rs.MoveNext
Loop
    
rs.Close
Set rs = Nothing

'Lo otro es pasar el los datos a un campo Variant de VBA para despues recorrerlo en un loop

Dim valoresBD As Variant
valoresBD = rs.GetRows
valoresBD(1, X)


cnn.Close ' cerramos la conexión.

PD: Al utilizar rs.EOF se presenta un error en caso que uno de las campos tenga valor null.

PD2: Se debe llamar a la referencia correspondiente  para hacer uso del ADODB, para eso realizamos lo siguiente:



Comentarios

Entradas populares de este blog

Descarga revistas yumpu.com

XML - Download File - VBA Excel

Funciones VBA Excel