Esta es la funcion de conexion
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 conexión a usar
servidor = Sheets(1).Range("servidor")
base = Sheets(1).Range("base")
Usuario = Sheets(1).Range("usuario")
pass = Sheets(1).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 parámetros no estén vacios
If Sql <> vbNullString And Hoja <> vbNullString Then
' variable para al rec de ado
Dim rst As Object
' abre la conexión 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, añade el nombre del campo al encabezado en la de DATOS
For i = 0 To rst.Fields.Count - 1
Sheets(2).Range(Chr(i + 65) & f + 1).Value = rst.Fields(i).Name
Next
f = f + 1
' recorre todo el recordset hasta el final
Do While Not rst.EOF
' recorre los campos en el registro actual del recordset para recuperar el dato
For i = 0 To rst.Fields.Count - 1
' añade el valor a la celda en la de DATOS
Sheets(2).Range(Chr(c + 65) & _
f + 1).Value = rst.Fields(c)
c = c + 1
Next
' resetea el indice de las columnas
c = 0
' Referencia al registro actual (incrementa )
f = f + 1
' Siguiente registro
rst.MoveNext
Loop
' cierra y descarga las referencias
On Error Resume Next
rst.Close
cn.Close
Set cn = Nothing
Set rst = Nothing
End If
Call Macro1
Exit Function
ErrorHandler:
MsgBox "Ha ocurrido un error: " & Err.Description, vbExclamation, "ATENCION"
End Function
lo que hago es guardar en una hoja llamada consulta los valores del form