Diferencia en versiones de referencias

11/11/2003 - 13:13 por Eva Etxebeste | Informe spam
Hola a Todos

En el grupo de Access se ha planteado un problema que yo sufrí también hace
algún tiempo y no supe como resolver.

Escenario:

Máquina de desarrollo: con Office 2000
Máquinas de explotación: Office 2000

Aplicación Access 2000 que utiliza la referencia "Microsoft word 9.0 object
Lybrary"

En la máquina de desarrollo se instala Office XP, la referencia "Microsoft
word 9.0 object Lybrary" es sustituida por "Microsoft word 10.0 object
Lybrary". Al distribuir la aplicación al resto de máquinas, pete total.

Solución adoptada hasta el momento: Abrir la aplicación en una máquina con
Office 2000, quitar la referencia 10.0 y marcar la 9.0

¿Habría alguna forma menos rupestre de arreglar el entuerto?

Gracias
Eva Etxebeste
[MS MVP]
 

Leer las respuestas

#1 Pilar Mueckay [MS MVP]
11/11/2003 - 15:33 | Informe spam
Hola Darling!,

Pues es un eterno tema de conflicto entre versiones. No tengo ni he
encontrado una respuesta satisfactoria.

Lo único que he experimentado es "extra trabajo" del lado del desarrollador:
en el código usar un late-binding que identifique la versión de la
biblioteca en la PC donde se ejecuta el código. Como no es mi área :-) no
puedo asegurarte si el Procedimiento ReferenceOffice verifica si está
instalada y usa esa versión de la biblioteca en la máquina "explotada" :-) o
incluso poderla crear automáticamente si fuese necesario. O bien, usar las
funciones GetObject o CreateObject. Creo que mejor ayuda sobre esto te
pueden dar nuestros amigos de VBA :-), ya que yo puedo estar desvariando.
pues mi experiencia es en Outlook y Excel más que en Access :-)

Para el resto del foro voy a ser más explicativa:

Binding significa exponer qué versión de modelo de objeto tiene el cliente
(el explotado, ¡uy!). Ahora bien, hay una diferencia entre "early binding" y
"late binding". Ya sabemos que a los ITs, y no refiero a los ETs, les gustan
las etiquetas difíciles. En este caso "early binding" es simplemente
seleccionar la biblioteca manualmente en el editor VBA vía menú Herramientas
| Referencias. Y "late binding" es simplemente en el código es *asegurar* la
biblioteca objeto en el proceso de run time; no se usa Herramientas |
Referencias, sino funciones específicas. Las diferencias también las vemos
en la ejecución: obviamente late-binding es más lento, pero tiene una
ventaja única: no importa qué versión tenga el usuario instalada. VBA usará
el nombre de la clase que le proporciona las funciones GetObject o
CreateObject (supongo que habrá Access_Application ¿no? bueno dije que no
era mi área).

No sé como los libros VBA traducen estos términos.

Coméntanos,

menteAtenta,
Pilar Mueckay (GMT-05:00)
MS Office MVP


"Eva Etxebeste" <eetxebesteARROBAhotmail.com> escribió en el mensaje
news:
Hola a Todos

En el grupo de Access se ha planteado un problema que yo sufrí también


hace
algún tiempo y no supe como resolver.

Escenario:

Máquina de desarrollo: con Office 2000
Máquinas de explotación: Office 2000

Aplicación Access 2000 que utiliza la referencia "Microsoft word 9.0


object
Lybrary"

En la máquina de desarrollo se instala Office XP, la referencia "Microsoft
word 9.0 object Lybrary" es sustituida por "Microsoft word 10.0 object
Lybrary". Al distribuir la aplicación al resto de máquinas, pete total.

Solución adoptada hasta el momento: Abrir la aplicación en una máquina con
Office 2000, quitar la referencia 10.0 y marcar la 9.0

¿Habría alguna forma menos rupestre de arreglar el entuerto?

Gracias
Eva Etxebeste
[MS MVP]


Preguntas similares