Saltar al contenido

Gestor de consultas sql desde excel


nachete22

Recommended Posts

Macro Antonio, lo prometido es deuda, aquí tienes el gestor de consultas que te prometí.

Antes de nada, copiaros la hoja Excel a un sitio donde tengáis vuestras hojas de trabajo ya que cuando se abre se genera en la barra de complementos de Excel una barra personalizada con tres opciones y a partir de ese momento siempre que se utilice la buscara en el sitio desde donde haya sido abierta.

  • Conexión
  • Consultas
  • Activas

Una vez abierta la hoja os solicitara permiso para ejecutar las Macros y se generara la barra personalizada, despues desde cualquier hoja excel podreis utilizarlo para ello pulsareis sobre la opción de Consultas.

Lo primero que tenemos que elegir es el DNS del sistema que utilizaremos para conectarnos a la base de datos. (DNS del sistema no de usuario), después pulsaremos en el botón Conexión para indicar a la aplicación que tipo de autenticación se realizara, si es mediante el id de windows o con un usuario y contraseña(Si la base de datos no necesita de usuario y password no es necesario informarlo)

Después tenemos que seleccionar donde queremos que nos deje en la hoja el resultado de la consulta y las opciones sobre los datos que nos devuelve la consulta, como son:

  • Nº de filas a devolver(un numero máximo) o todas las filas
  • Nombre de las columnas de la Tabla
  • Que me numere las filas devueltas

Se puede marcar que la consulta se realice de forma automática cada x minutos o al abrir el archivo

Las consultas admiten parámetros, estos pueden ser datos que estén en las propia hoja. Para indicar un parámetro lo haremos con el carácter ?

Ej

Select * from tabla_empleados

where id_empleado = ?

Si ejecutamos esta consulta nos pedirá el lugar de la hoja excel donde esta el valor del parámetro y nos dará la opción de ejecutar automáticamente la consulta cada vez que el valor de la celda cambie, si se marca esta opción solo con cambiar el valor de la celda veremos que los datos cambian.

La opción de la barra personalizada "Activas" nos muestra la consultas que tenemos activas en la hoja, pudiendo forzar a ejecutarla en ese mismo momento o parar su ejecución automática.

las consultas nos permite guardarlas en la base de datos que estemos conectados, como consultas publicas o privadas, para ello hay que crear una tabla que se llama "DIRECTORIO_CONSULTAS" de esta forma podemos tener todas nuestras consultas guardadas. la tabla tiene estos campos (Cod_usuario, nombre_consulta, fec_creacion, fec_modificacion, fec_uso, consulta)

Creo que no me dejo nada.

PD. la opción de exportar a ACCESS, no funciona, lo tengo que mirar. esta hecho hace mucho tiempo pero funciona muy bien

Espero que os guste, no es una herramienta muy útil para el publico general pero el que trabaje con base de datos le sera de utilidad.

Microsoft SkyDrive - Access files anywhere. Create docs with free Office Web Apps.

Enlace a comentario
Compartir con otras webs

Ya me dirás cuando veas el potencial que tiene sobre hojas Excel....

Montar informes en excel que recuperen datos de oracle automáticamente con esta herramienta es una maravilla.

Me alegro de que le des utilidad.

Un saludo.

Enlace a comentario
Compartir con otras webs

Ya lo he probado y funciona bien sobre Access.

La gran diferencia respecto a mi Visor SQL, excepto la barra de menús, es que está orientado a usuarios experimentados en SQL, y yo he intentado ciertos automatismos en la construcción de la sentencia SQL.

Me alegro ver a mas miembros del foro participando en "Ídeas y Aportes", porqué últimamente se echaba de menos un poco mas de actividad.

Saludos.

Enlace a comentario
Compartir con otras webs

si, aquí las sentencias hay que construirselas uno mismo, solo ejecuta consultas y coloca los resultados donde quieras, es una herramienta que me hice a medida de mis necesidades. la ventaja es que puedes ejecutar las consultas en cualquier hoja de trabajo tuya.

Y si es una herramienta para usuarios Experimentados en SQL, yo principalmente la utilizo sobre SQLSERVER, ORACLE Y DB2

Ya iré Poniendo más cosas en el Foro haber si entre todos le damos un poco más de dinamismo al foro.

Tengo el tuyo aquí este finde le echo un vistazo , ya te contare (Seguro que es un gran trabajo).

Un saludo a todos.

Enlace a comentario
Compartir con otras webs

Lo suyo sería probarlo sobre Access ya que se accede a la tabla del sistema MSSysObjects, que evidentemente debe llamarse de otra manera y con otro diseño en otras bases de datos.

Esa parte habría que personalizarla para cada tipo de base de datos.

Enlace a comentario
Compartir con otras webs

si, tanto para acess como para SQLSERVER es igual, si seleccionas otra tipo de base de datos, si te fijas no muestro esa parte de la ventana, se puede modificar muy facilmente para añadirle ese extra a otras base de datos, pero yo no lo necesitaba.

es una idea para mejorarlo.

Enlace a comentario
Compartir con otras webs

estimado @[uSER=141121]nachete22[/uSER] que referencias en excel se activan para que funcione el Gestor de Consultas SQL.

muy agradecido.

No es necesario Activar ninguna referencia, lo único que tienes que haces es habilitar las macros. Con eso seria suficiente para que te funcione.

Un saludo.

Enlace a comentario
Compartir con otras webs

ya lo vi, muchas gracias

consulta estas consultar es necesario conectarse a 1 base de datos en server, epro mi pregunta es, se puede hacer consultas sql de 1 hoja que tiene datos.

por ejemplo tengo 1 hoja con movimientos de ventas y quisera realizar consultas sobre esta hoja, sera posible realizar algo asi.

espero q se pueda

saludos,

Muscaria

Enlace a comentario
Compartir con otras webs

  • 2 weeks later...

como puedo solucionar el problema ,, no se puede encontrar el proyeto o la biblioteca y arroja error al abrir el archivo. teniendo habilitado mis referencias principales. uso windows xp pack 3 y excel 2007

Enlace a comentario
Compartir con otras webs

  • 9 months later...

Muchas gracias por el trabajo realizado. Llevaba tiempo buscando algo así. Lo he probado y funciona muy bien con una base de datos oracle desde un ordenador con excell 32bits. Sin embargo y esta es la duda que qeuría consultar, no me funciona la hoja cuando es un excell de 64 bits. Por favor podrías ayudarme para conseguir que funcione ya que es una maravilla ejecutar las consultas directamente desde el excell. Gracias

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 96 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Buenas noches quisiera hacer esta formula auto incremental    =SI(INDIRECTO("'Casos de Prueba'!I1")="Resultados Ciclo 1"; SI(CONTAR.SI(INDIRECTO("'Casos de Prueba'!I:I"); "OK")=0; 0; CONTAR.SI(INDIRECTO("'Casos de Prueba'!I:I"); "OK")); 0)      para que cada vez que copiase y pegase la celda con la formula  se incrementara la letra en este caso la I pasara a J ,como el numero perteneciente a Resultados Ciclo pasando en este caso del 1 al 2.   Tengo también esta formula =CONCATENAR("CP";TEXTO(MAX((SI((ESNUMERO(HALLAR("CP";A$1:A1)))*(A$1:A1<>"");VALOR(EXTRAE(A$1:A1;3;3));0))+1);"000")&" - "&B2) quisiera que no tuviera los 3 ceros si no que fuera por ejemplo CP1 y se fuera incrementando. Gracias un saludo.
    • Con el diseño así como lo tiene en su libro, una fórmula de BUSCARV con COINCIDIR debería ser de utilidad =C5*BUSCARV($C$1,Tabla1[#Todo],COINCIDIR($D5,Tabla1[#Encabezados],0)) Es con lo que participaría en su consulta. Lo que resta es definir que hacer si no encuentra la OT porque así como esta le devolvería error en ese caso, o si tiene condiciones que haya podido omitir también le afectarían el resultado.
    • He cambiado mi macro a este: Sub repetir() Set a = Sheets(ActiveSheet.Name) uf = a.Range("C" & Rows.Count).End(xlUp).Row 'ultima fila con datos ActiveCell.Select ActiveCell.Offset(1, 0).Select   'Application.OnTime Now + TimeValue("00:00:10"), "repetir", , True End If End Sub   Lo que no se es como detenerlo al llegar a la ultima fila con datos de la columna C. Muchas gracias
    • Buenas tardes a todos. Tengo un problema que preciso de vuestra ayuda.  Tengo que controlar los gastos de la oficina que trabajo y he de repartir unos gastos a % según una OT y unos tipos de gastos. Envío un archivo adjunto. Lo que necesito es que lo que aparece en la columna en amarillo lo haga automáticamente, teniendo en cuenta los datos de la tabla a la derecha. Por ejemplo, el primer gasto tiene una cuota de 1477 euros y teniendo en cuenta que es un gasto de tipo Común y que la OT es la 12810234, le corresponde un gasto de 605,57 euros ya que según la tabla de la derecha su % a imputar es de un 41%. ¿alguien me puede ayudar con la formula? He de añadir muchas más líneas y más hojas con el resto de OT y en el futuro cambiar más datos, así que necesito automatizarlo con una formula Excel. Gracias. Control de gastos.xlsx
    • Hola buenas tardes: Por favor me pueden ayudar a realizar lo siguiente. ejecutar una macro después de un tiempo, que recorra una columna a partir de la celda activa hacia abajo. Es una lista extensa, que filtro desde la columna B. y solo me muestra las filas que me interesan. ejemplo: Si mi celda activa es la C23 ejecutar la macro y baje una celda y repite la macro después de 20 segundos y lo vuelve hacer(Simpre bajando una celda), y que este se detenga hasta la ultima fila que este visible en el filtro. Ya que puedo tener muchos datos mas.   Gracias   Prueba filtro y avance.xlsm
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.