Cómo se abre un formulario Access desde Excel usando dde VBA
Moderador: Moderadores
Cómo se abre un formulario Access desde Excel usando dde VBA
Necesito abrir un formulario de Access desde el código de Visual Basic de un libro Excel. Sé que hay que usar los métodos ddeinitiate y ddeexecute. ¿Cómo se hace?
Re: Cómo se abre un formulario Access desde Excel...
Gracias, Epica,
Estoy pendiente. Puedo esperar hasta el fin de semana sin problema. Hagamos un supuesto:
mi base de datos se llama Neptuno.mdb ( en C:\Mis Documentos ) y en ella hay un formulario Form1.
Gracias por adelantado
Estoy pendiente. Puedo esperar hasta el fin de semana sin problema. Hagamos un supuesto:
mi base de datos se llama Neptuno.mdb ( en C:\Mis Documentos ) y en ella hay un formulario Form1.
Gracias por adelantado
Ops, un formulario ya creado dices, me temo que la opción es crearlo otra vez en excell, una pregunta, es solo un formulario o son varios?
si es uno lo puedes rediseñar en Excel, si son mas la cosa se complica porque si se pueden rediseñar pero obviamente es mas trabajillo.
Dame mas datos, espero poder ayudarte
si es uno lo puedes rediseñar en Excel, si son mas la cosa se complica porque si se pueden rediseñar pero obviamente es mas trabajillo.
Dame mas datos, espero poder ayudarte
Gracias otra vez, Epica
He progresado algo mirando por mi cuenta. Supongamos, como puse en mi supuesto, que existe una base de datos Neptuno.mdb en C:\Mis Documentos, y que dentro de ella hay un formulario llamado "Clientes". Se puede abrir desde Excel con el siguiente código:
Dim nCanal As Long
nCanal = Application.DDEInitiate(app:="msaccess", topic:="C:\Mis Documentos\Neptuno.mdb")
Application.DDEExecute nCanal, "[OpenForm ""Clientes""]"
Application.DDETerminate nCanal
Pero voy más allá. A este formulario se le puede incorporar un control Cuadro Combinado, de tal manera que resulte más sencillo buscar un cliente en concreto, ordenando la lista de clientes por orden alfabético, por ejemplo. Una vez hecho, el usuario que quiera consultar los datos de un cliente en concreto, tiene la opción bien de escribir el nombre del cliente en el cuadro combinado, o bien de buscarlo en la lista desplegable. Al seleccionarlo, el formulario se situará en el registro del cliente buscado.
Mi propósito es transferir al cuadro combinado el valor a buscar desde Excel. Supongamos que se llama Cuadro_Combinado4. He llegado a conseguir activarlo: hay que poner la siguiente instrucción (justo antes de cerrar el canal):
Application.DDEExecute nCanal, "[GoToControl ""Cuadro_combinado4""]"
Lo que todavía no he conseguido es pasarle el valor de una celda en Excel al Cuadro Combinado. Lo he intentado con DDEPoke, pero no me sale...
He progresado algo mirando por mi cuenta. Supongamos, como puse en mi supuesto, que existe una base de datos Neptuno.mdb en C:\Mis Documentos, y que dentro de ella hay un formulario llamado "Clientes". Se puede abrir desde Excel con el siguiente código:
Dim nCanal As Long
nCanal = Application.DDEInitiate(app:="msaccess", topic:="C:\Mis Documentos\Neptuno.mdb")
Application.DDEExecute nCanal, "[OpenForm ""Clientes""]"
Application.DDETerminate nCanal
Pero voy más allá. A este formulario se le puede incorporar un control Cuadro Combinado, de tal manera que resulte más sencillo buscar un cliente en concreto, ordenando la lista de clientes por orden alfabético, por ejemplo. Una vez hecho, el usuario que quiera consultar los datos de un cliente en concreto, tiene la opción bien de escribir el nombre del cliente en el cuadro combinado, o bien de buscarlo en la lista desplegable. Al seleccionarlo, el formulario se situará en el registro del cliente buscado.
Mi propósito es transferir al cuadro combinado el valor a buscar desde Excel. Supongamos que se llama Cuadro_Combinado4. He llegado a conseguir activarlo: hay que poner la siguiente instrucción (justo antes de cerrar el canal):
Application.DDEExecute nCanal, "[GoToControl ""Cuadro_combinado4""]"
Lo que todavía no he conseguido es pasarle el valor de una celda en Excel al Cuadro Combinado. Lo he intentado con DDEPoke, pero no me sale...
Primero que nada decirte que ese código no lo había usado antes, lo he probado para ver como funciona y me di cuenta que lo que hace es abrir el formulario con todo y Access por lo tanto no hay comunicación directa con la tabla o formulario y Excel, por lo que te digo no puedo ayudarte en ese caso.
PD. Para tener el control total de un formulario y/o tabla de Access te recomiendo rediseñes el formulario pero dentro en Excel, obviamente aquí incluye código al estilo Visual Basic 6 (que al menos para mi no es complicado), una vez hecho esto puedes manejar los datos y/o controles de un formulario 'a tu gusto'
PD. Para tener el control total de un formulario y/o tabla de Access te recomiendo rediseñes el formulario pero dentro en Excel, obviamente aquí incluye código al estilo Visual Basic 6 (que al menos para mi no es complicado), una vez hecho esto puedes manejar los datos y/o controles de un formulario 'a tu gusto'