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. |
Excel nos da prestaciones intersantes para importar datos de diferentes orígenes.
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.
Buenas tardes David:
Te comento que Abraham Valencia tiene publicado un ejemplo donde puedes adecuar una consulta SQL en Excel y traer los datos de Access, entre otros ejemplos que comparte.
Puedes revisar su página aquí.
http://abrahamexcel.webcindario.com/Ejemplos.html
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
Este artículo es para obtener datos desde Acces, SQL y MySql.
El artículo para dar de alta datos a SQL y otras es este http://blogs.itpro.es/exceleinfo/2011/02/08/conectar-excel-a-access-mysql-y-sql/