Cómo se abre un formulario Access desde Excel usando dde VBA

Cuestiones y dudas acerca de lenguajes de programación diversos.

Moderador: Moderadores

alejgovel
Novat@
Mensajes: 3
Registrado: Mié Jun 27, 2007 7:42 pm

Cómo se abre un formulario Access desde Excel usando dde VBA

Mensaje por alejgovel » Mié Jun 27, 2007 7:59 pm

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?
:cry:

EPICA
Moderador
Mensajes: 1576
Registrado: Sab Abr 15, 2006 4:27 pm
Ubicación: Mexico

Mensaje por EPICA » Jue Jun 28, 2007 3:06 pm

si esperas al fin de semana te puedo hacer un ejemplo, o si lo ve alguien mas pues lo tendrás antes :wink:
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 :D
Imagen

alejgovel
Novat@
Mensajes: 3
Registrado: Mié Jun 27, 2007 7:42 pm

Re: Cómo se abre un formulario Access desde Excel...

Mensaje por alejgovel » Jue Jun 28, 2007 4:49 pm

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

EPICA
Moderador
Mensajes: 1576
Registrado: Sab Abr 15, 2006 4:27 pm
Ubicación: Mexico

Mensaje por EPICA » Jue Jun 28, 2007 9:46 pm

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 :D
Imagen

alejgovel
Novat@
Mensajes: 3
Registrado: Mié Jun 27, 2007 7:42 pm

Mensaje por alejgovel » Vie Jun 29, 2007 8:14 pm

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...

EPICA
Moderador
Mensajes: 1576
Registrado: Sab Abr 15, 2006 4:27 pm
Ubicación: Mexico

Mensaje por EPICA » Dom Jul 01, 2007 2:18 pm

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' :wink:
Imagen

Avatar de Usuario
Invitado

Mensaje por Invitado » Lun Jul 02, 2007 5:08 pm

Gracias por interesarte por ello, Epica.

Responder