Página 1 de 1
Cómo se abre un formulario Access desde Excel usando dde VBA
Publicado: Mié Jun 27, 2007 7:59 pm
por alejgovel
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?

Publicado: Jue Jun 28, 2007 3:06 pm
por EPICA
si esperas al fin de semana te puedo hacer un ejemplo, o si lo ve alguien mas pues lo tendrás antes
si quieres que te ayude en el ejemplo el fin de semana lo que tienes que hacer es dar la respuesta de enterado, si no pensare que ya nunca volverás y no tiene caso hacer nada

Re: Cómo se abre un formulario Access desde Excel...
Publicado: Jue Jun 28, 2007 4:49 pm
por alejgovel
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
Publicado: Jue Jun 28, 2007 9:46 pm
por EPICA
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

Publicado: Vie Jun 29, 2007 8:14 pm
por alejgovel
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...
Publicado: Dom Jul 01, 2007 2:18 pm
por EPICA
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'

Publicado: Lun Jul 02, 2007 5:08 pm
por Invitado
Gracias por interesarte por ello, Epica.