Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Consideraciones
Se requieren conocimientos bsicos de SQL para armar la
consulta, as como un servidor SQL local o en red.
Cdigo
Private Sub CommandButton1_Click()
'Llamas la funcin Ejecutar
Cells.ClearContents
Call Ejecutar(Sheets(2).Range("consulta"), "Hoja1")
End Sub
Function Ejecutar(Sql As String, Hoja As String)
On Error GoTo ErrorHandler
Dim cn As Object
' crea un objeto Connection
Set cn = CreateObject("ADODB.Connection")
' IMPORTANTE: Indicar la cadena de conexin a usar
servidor = Sheets(2).Range("servidor")
base = Sheets(2).Range("base")
Usuario = Sheets(2).Range("usuario")
pass = Sheets(2).Range("pass")
Conexion = "Provider=SQLOLEDB.1;" & _
"Password=" & pass & ";" & _
"Persist Security Info=True;" & _
"User ID=" & Usuario & ";" & _
"Initial Catalog=" & base & ";" & _
"Data Source=" & servidor
'cn.ConnectionString = "Provider=SQLOLEDB.1;Password=s3cr3t0;Persist Security Info=True;User
ID=sa;Initial Catalog=Cobranza;Data Source= 192.168.2.6"
cn.ConnectionString = Conexion
' verifica que los parmetros no estn vacios
If Sql <> vbNullString And Hoja <> vbNullString Then
' variable para al rec de ado
Dim rst As Object
' abre la conexin a la base de datos
cn.Open
' crea un nuevo objeto recordset
Set rst = CreateObject("ADODB.Recordset")
' Ejecuta el sql para llenar el recordset
rst.Open Sql, cn, 1, 3
' variables para los indices de las filas y columnas
c = 0
f = 0
' recorre las columnas, aade el nombre del campo al encabezado
For i = 0 To rst.Fields.Count - 1
Sheets(1).Range(Chr(i + 65) & f + 1).Value = rst.Fields(i).Name
Next
f = f + 1