RE:crear una conexion de sql a excell
'Sub IncorporaReferencias()
Dim miCanal As Integer
Dim miSQL As String
Dim x_path As String
x_path = Range("aplicación_directorio")
miCanal = SQLOpen("DSN=Marcolin") ' Range("Nombre_DSN"))
Application.ScreenUpdating = False
Worksheets("Configuraciones").Select
ActiveSheet.Unprotect
Range("P1").Select
Selection.CurrentRegion.ClearContents
miSQL = "SELECT DISTINCT ug022.LIN_PRD + '-' + ug022.COD_TAR + '-' + ug047.COD_CONFI AS 'concatenado',"
miSQL = miSQL & "'xxxxxxx.xxx'" & " AS 'archivo' "
miSQL = miSQL & "FROM " & x_path & "ug022.dbf ug022, " & x_path & "ug047.dbf ug047 "
miSQL = miSQL & ", " & x_path & "ug032.dbf ug032 "
miSQL = miSQL & "WHERE (ug022.COD_MOD = ug047.COD_MOD) "
miSQL = miSQL & "AND (ug022.COD_MOD = ug032.COD_MOD) "
miSQL = miSQL & "AND (ug022.COD_TAR = ug032.COD_TAR) "
miSQL = miSQL & "AND (ug032.COD_MON = '" & Range("Código_Moneda") & "') "
miSQL = miSQL & "ORDER BY ug022.LIN_PRD,ug022.COD_TAR, ug047.COD_CONFI"
SQLExecQuery miCanal, CrearArraySQL(miSQL)
SQLRetrieve miCanal, Worksheets("Configuraciones").Range("P1"), , , True
'
' Selection.CurrentRegion.Select
' Selection.CreateNames Top:=True, Left:=False, bottom:=False, Right:=False
'
' SQLClose miCanal
' Worksheets(1).Select
'
'End Sub
Ademas necesitas incluir en Referencias de VB el archivo XLODBC.XLA.
Espero que te sirva
Eduard