PDF de programación - Curso de VB - Capítulo 14

Imágen de pdf Curso de VB - Capítulo 14

Curso de VB - Capítulo 14gráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 8 de Febrero del 2018)
854 visualizaciones desde el 8 de Febrero del 2018
395,8 KB
20 paginas
Creado hace 11a (24/09/2012)
CURSO DE VB

CAPÍTULO 141

Índice de contenido
AUTOMATIZACIÓN..........................................................................................................................2
INTRODUCCIÓN...........................................................................................................................2
NECESITO UN DICCIONARIO....................................................................................................2
PREPARANDO NUESTROS ELEMENTOS DE PRUEBAS.......................................................3
ACCESS......................................................................................................................................3
EXCEL........................................................................................................................................4
PROTOCOLO DDE........................................................................................................................4
FASE DE INICIO: DDEInitiate..................................................................................................4
RECOGER DATOS: DDERequest.............................................................................................6
ENVIAR DATOS: DDEPoke.....................................................................................................8
ENVÍO DE COMANDOS: DDEExecute...................................................................................9
FINALIZAR CONEXIÓN: DDETerminate / DDETerminateAll...............................................9
AUTOMATIZACIÓN: INDICACIONES INICIALES................................................................10
Registrar la referencia...............................................................................................................10
Abrir la aplicación servidor.......................................................................................................10
Abrir un archivo existente.........................................................................................................10
Métodos, propiedades y demás malas hierbas..........................................................................11
ACCESS – WORD........................................................................................................................11
ACCESS – EXCEL.......................................................................................................................14
ACCESS – OUTLOOK.................................................................................................................17
ACCESS – POWERPOINT...........................................................................................................18
FUNCIONES CREATEOBJECT() Y GETOBJECT()..................................................................19
PARA FINALIZAR.......................................................................................................................20

1 La BD donde están los ejemplos de este capítulo os la podéis bajar aquí.

Visítame en http://siliconproject.com.ar/neckkito/

1

AUTOMATIZACIÓN

INTRODUCCIÓN

Y la pregunta del millón es... ¿qué significa
“automatización”?

Y si yo os pregunto: ¿os suena la palabrita OLE?

Supongo que todos me diréis... “Claro, OLE... Object
Linking and Embedding... ¿Quién es que no sabe eso?”

Pues claro claro... no sé si queda... je, je...

La automatización (o automatización OLE) no es más que una tecnología que permite manejar
datos de una aplicación directamente desde otra aplicación.

Así pues, podemos distinguir dos elementos en un proceso de automatización:




Un cliente (o controlador)
Un servidor OLE

El cliente sería pues la aplicación que estamos utilizando, y que en un momento dado requiere
de los “servicios” de un servidor, por lo que el cliente se encarga de realizar las operaciones
sobre el servidor OLE de manera automática.

Dicho en pocas palabras, si estamos en Access y gestionamos (lógicamente desde Access) un
Word nuestro Access sería el cliente, y Word sería el servidor OLE.

NECESITO UN DICCIONARIO
Por ahora creo que la cosa ya se ha clarificado bastante, y ya entendemos qué es esto de
“automatización”.

Muy bien... Yo soy Neckkito Access, y, como cliente, voy a manejar Wordito Word... Y me
encuentro la primera sorpresa: ¡Wordito habla en chino! Así, lógicamente, no hay quien se
entienda...

Para solventar este tema necesito un diccionario... que en nuestro caso no es otra cosa que
una referencia o biblioteca propia de Word.

Y para “adquirir” esa referencia no tengo otro remedio que irme, en el menú el VBE, a menú
Herramientas
Referencias, y buscar el “diccionario” que corresponda al idioma que la

aplicación servidor entiende (en este ejemplo sería “Microsoft Word x.y Object Library”, donde
x.y es la versión que tengamos instalada en nuestro PC).



Resumiendo: si manejo una aplicación servidor debo antes registrar la referencia adecuada
para que pueda establecerse una comunicación “entendible” entre ambas aplicaciones.

Visítame en http://siliconproject.com.ar/neckkito/

2

PREPARANDO NUESTROS ELEMENTOS DE

PRUEBAS

ACCESS
Antes de seguir en materia vamos a prepararnos una
pequeña BD de pruebas para ir desarrollando los ejemplos
de este capítulo. Para ello, en una nueva aplicación de
Access, creamos una tabla, la tabla TDatos, que tendrá esta
simple estructura:

A continuación creamos la tabla TAct, que sólo contendrá un campo:

El tipo de datos de [Factor] será Doble, con 2 decimales.

Finalmente vamos a crearnos una consulta, que llamaremos CDatosAct, que tendrá la siguiente
estructura:

Por si no se ve bien el campo calculado la expresión es:

CapitalAct: [Capital]*[Factor]

Sacamos las propiedades de ese campo calculado y le definimos su formato como Moneda.

Visítame en http://siliconproject.com.ar/neckkito/

3

EXCEL

En el mismo directorio donde tenemos la BD vamos a
crearnos un Excel, que llamaremos InfoOrigen.xlsx (o xls).

1.- Renombramos la HOJA1 a DATOS
2.- Respetando las celdas que veréis en las ilustraciones,
montamos el Excel así (en la ilustración de la izquierda, los
valores; en la de la derecha, las fórmulas):

En principio con esto nos basta para empezar con el primer epígrafe.

La idea de lo que vamos a desarrollar es la siguiente: nos pasan (o utilizamos) un Excel que
contiene unos valores que se van actualizando, y necesitamos de esos valores actualizados
para obtener información fidedigna de nuestra base de datos.

PROTOCOLO DDE
Hay una forma muy “directa” de establecer comunicación entre las aplicaciones de Microsoft
Office. Esa forma es el protocolo Dynamic Data Interchange, o protocolo DDE. Los elementos
de este protocolo son:

Un cliente (o Destino)
Un Servidor (u Origen)
Un proceso de inicio, donde se abre un canal de comunicación entre cliente y servidor
Un proceso de comunicación, donde se establece un intercambio de datos entre





cliente y servidor


Un proceso de cierre, donde se cierra el canal de comunicación.

 Importante: con este protocolo ambas aplicaciones deben estar abiertas al mismo
tiempo. Si se cierra una de ellas el canal de comunicación se cierra automáticamente.

Teniendo en cuenta lo anterior vamos a ver cómo podemos aprovecharnos de este protocolo
DDE.

FASE DE INICIO: DDEInitiate
Vamos a abrir nuestro Excel, y después abriremos nuestra base de datos. Nos vamos a crear
un formulario en blanco y añadiremos un botón de comando. Lo programaremos después.
Ahora vamos a ver la sistemática de cómo abrimos un canal de comunicación.

La estructura para ello es la siguiente:

DDEInitiate (<aplicacion>, <tema>)

Visítame en http://siliconproject.com.ar/neckkito/

4

Ambos argumentos son requeridos. Y

– <aplicacion> será el nombre del Servidor
– <tema> será el identificador de donde cogemos los datos.

Nuestro amigo Access define <tema> como asunto de una
conversación de intercambio de datos dinámicos (DDE)
entre dos aplicaciones. Para la mayoría de las aplicaciones
que utilizan archivos, el tema es un nombre de archivo2.

En fin... como veis, a veces la ayuda de Access parece
escrita para nigromantes.

Siguiendo con nuestra explicación, DDEInitiate lo que hace es devolver un valor, de tipo Long,
que representa el canal que se ha establecido entre ambas aplicaciones.

Vamos a comprobarlo.

En ese botón que comentábamos al principio de este epígrafe vamos a programar el siguiente
código (recordad que Access y Excel deben estar abiertas simultáneamente para que
funcione):


Private Sub cmdDDEInitiate_Click()
Dim numCanal As Long
numCanal = DDEInitiate("excel", "DATOS")
MsgBox "El número de canal que se ha abierto entre Access y Excel es: " _
& numCanal, vbInformation, "CANAL"
DDETerminate (numCanal)
End Sub


Como vemos, nuestros argumentos han sido:

– <aplicación> = “excel”
– <tema> = “DATOS”


hemos introducido los datos.

Que se corresponde con el nombre de la hoja de Excel donde



Si hacemos click sobre ese botón obtendremos un número, que se corresponderá con el
número de canal.

En mi caso:

Para evitarnos sorpresas vamos a hacer una cosa:

– Cerramos Excel
– Volvemos a hacer click sobre el botón

2

Extraído de la ayuda de Access

Visítame en http://siliconproject.com.ar/neckkito/

5

Y nos encontramos con el error 282, que dice así:

Por ello, y como tras el capítulo 13 ya sabemos gestionar errores, podríamos poner remedio a
esta situación tan “embarazosa” (no lo haremos aquí, porque no es el objetivo del capítulo,
claro).

Debemos tener en cuenta que este proceso consume recursos del sistema. Es conveniente
cerrar siempre el canal a través de DDETerminate. Y, como habréis podido comprobar en el
código, DDETerminate es tan simple como poner el
  • Links de descarga
http://lwp-l.com/pdf8677

Comentarios de: Curso de VB - Capítulo 14 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad