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