Obtener datos de Access, SQL, MySql, Web, txt, etc. desde Excel sin vba

Cuando se trabaja con diferentes gestores de bases de datos (SGBD) o DBMA (DataBase Management System) o simplemente queremos obtener datos de otros orígenes, siempre llega la necesidad de extraer esos datos a nuestra hoja de cálculo, que en este caso es Excel.

Y como no todo debe ser ‘vba’, exploremos las grandes prestaciones que ya de por sí nos ofrece Excel: Obtener datos externos.

Fácil, pero desconocido

Sólo tendremos que entrar a la pestaña Datos y tenemos opciones como Access, Web, texto, SQL y otras fuentes de datos.

Para los distintos orígenes, tenemos diferentes variantes:

ORIGEN COMENTARIOS
Access Elegimos la base de datos y seleccionamos la tabla.
Web Ingresamos la dirección URL de la página.
Texto Elegimos el archivo txt.
SQL Ingresamos el nombre o la IP del servidor, usuario, contraseña, elegimos la base de datos y la tabla.
MySql Debemos bajar el driver que nos permita hacer la conexión.
Fox Pro Elegimos nuestra base de datos.

image

Excel nos da prestaciones intersantes para importar datos de diferentes orígenes.

You may also like...

5 Responses

  1. David Garcia says:

    Buen dia

    Apreciaria mucho si conocen de una macro para realizar una consulta de una base de datos Access con criterios. Es decir; poder volcar la informacion de una base de datos access según una seleccion bien sea de combobox o listbox.

    Apreciaria mucho si pueden orientarme.

    Mis respetos.

  2. Que tal Sergio, bueno como acordamos por correo
    aqui publico el codigo..

    Te comento, es un pequeño reporte en una hoja de excel que cuenta con un boton el cual envia los datos a una tabla sql, aqui el detalle que cuando envia los datos los manda repetidamente
    Me gustaria que solo enviara las celda que escribo.

    Private Sub CommandButton1_Click()

    Dim sql As String
    Dim cn As Object
    Dim rst As Object
    Dim PP As Long

    PP = Sheets(“Hoja1”).Range(“A65000”).End(xlUp).Row

    For rowCursor = 2 To PP

    If rowCursor = “” Then
    Exit For
    Exit Sub
    End If

    sql = “Insert Into Reporte(Cliente, Dimmm, Tipo, Mate, No_Rodillo, Cond, HoraCromado, R_A, PicosRod, Temp_Cromo, Reversa_Amp, Reversa_Tiempo, Cromado_Amp, Cromado_Tiempo, Cromado_Volts, Cond_DES, R_A_DES, PicosDES, CEL_DA ) ” & _
    “VALUES (‘” & Cells(rowCursor, 1) & “‘, ‘” & Cells(rowCursor, 2) & “‘, ‘” & Cells(rowCursor, 3) & “‘, ‘” & Cells(rowCursor, 4) & “‘, ‘” & Cells(rowCursor, 5) & “‘, ‘” & Cells(rowCursor, 6) & “‘, ‘” & Cells(rowCursor, 7) & “‘, ‘” & Cells(rowCursor, 8) & “‘, ‘” & Cells(rowCursor, 9) & “‘, ‘” & Cells(rowCursor, 10) & “‘, ‘” & Cells(rowCursor, 11) & “‘, ‘” & Cells(rowCursor, 12) & “‘, ‘” & Cells(rowCursor, 13) & “‘, ‘” & Cells(rowCursor, 14) & “‘, ‘” & Cells(rowCursor, 15) & “‘, ‘” & Cells(rowCursor, 16) & “‘, ‘” & Cells(rowCursor, 17) & “‘, ‘” & Cells(rowCursor, 18) & “‘, ‘” & Cells(rowCursor, 19) & ” ‘)”

    ‘ crea un objeto Connection
    Set cn = CreateObject(“ADODB.Connection”)

    cn.ConnectionString = “driver={SQL Server};server=ADMINSQLEXPRESS;database=Recrotek”

    If sql vbNullString Then

    ‘ variable para al rec de ado

    ‘ abre la conexión a la base de datos
    ‘ On Error GoTo nohayinternet
    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
    ‘ProgressBar1.

    ‘ cierra y descarga las referencias
    On Error Resume Next
    rst.Close
    cn.Close
    Set cn = Nothing
    Set rst = Nothing
    End If

    Next

    MsgBox “Insertado en la Tabla”, vbInformation, “Insertado”
    ‘exito:

    End Sub

Leave a Reply

Your email address will not be published.

%d bloggers like this: