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
Publicar un comentario