Saber Version ADO instalada

27/09/2005 - 01:15 por Luis M | Informe spam
Buen dia a todos

Como puedo saber mediante Codigo la version de la Referencia ADO (libreria
Active Data Objects) instalada?

Gracias

Luis

Preguntas similare

Leer las respuestas

#1 Luis M
27/09/2005 - 01:20 | Informe spam
Adiciono mi pregunta porque talvez no fui claro: no quiero identificarla si
ya esta instalada. Quiero saber la version para instalarla mediante codigo.

Gracias otra vez

Luis


"Luis M" <luism0(arroba)yahoo.es> escribió en el mensaje
news:uV0tn$
Buen dia a todos

Como puedo saber mediante Codigo la version de la Referencia ADO (libreria
Active Data Objects) instalada?

Gracias

Luis

Respuesta Responder a este mensaje
#2 Héctor Miguel
27/09/2005 - 03:04 | Informe spam
hola, L.A.M. !

... saber mediante Codigo la version de la Referencia ADO (libreria Active Data Objects) instalada?
Adiciono mi pregunta porque talvez no fui claro: no quiero identificarla si ya esta instalada.
Quiero saber la version para instalarla mediante codigo.



[creo que] necesitaras 're/plantear/te'... NO 'la pregunta'... sino lo que -realmente- necesitas lograr -?- [me explico]...
-> una cosa es que alg/una libreria ADO se encuentre ->en el sistema<- [el archivo en un directorio]...
-> otra cosa es que la misma se encuentre 'debidamente' registrada [en el registro de windows] para poderla usar...
-> otra cosa es si se encuentra [o no] 'instalada/referenciada/...' en un proyecto de macros
-> y [todavia] habria que 'averiguar' cuantas y cuales 'versiones' se encuentran en el sistema [y si registradas o no]

aunque solo es posible marcar referencia en el proyecto de macros A UNA SOLA [si varias]... podria 'haber' varias -?-
las librerias de conexion a sql, ado, etc. son 'compatibles hacia arriba'... mas NO... 'hacia abajo' [los archivos 'danzan' entre equipos ?]

si estas programando para diferentes versiones/equipos/platformas/... [probablemente]...
seria necesario 'barrer' -todas- las posibilidades desde vba [p.e. usando la propiedad 'References' del proyecto VBE]
-> usando el metodo para 'agregar desde archivo' o... [quizas] leyendo el registro de windows o... -?-

comentas por donde 'le damos' ?
saludos,
hector.
Respuesta Responder a este mensaje
#3 Luis M
27/09/2005 - 04:08 | Informe spam
Hector, gracias. La pregunta "completa" esta bien enfocada porque dirige a
lo que planteas. Eso, si no hay tal referencia instalada en el proyecto VBA,
cómo hago para detectar cual es la ultima (de muchas o varias versiones)
disponible en un equipo para poder vincularla al proyecto, bien sea con el
metodo AddFromFile o usando el Guid. Y es posible que la libreria o el
archivo Activex que busco esté en la libreria de la aplicacion o del
sistema, segun sea ADO, Outlook, etc.

Saludos,

Luis


"Héctor Miguel" escribió en el mensaje
news:##
hola, L.A.M. !

> ... saber mediante Codigo la version de la Referencia ADO (libreria


Active Data Objects) instalada?
> Adiciono mi pregunta porque talvez no fui claro: no quiero identificarla


si ya esta instalada.
> Quiero saber la version para instalarla mediante codigo.

[creo que] necesitaras 're/plantear/te'... NO 'la pregunta'... sino lo


que -realmente- necesitas lograr -?- [me explico]...
-> una cosa es que alg/una libreria ADO se encuentre ->en el sistema<- [el


archivo en un directorio]...
-> otra cosa es que la misma se encuentre 'debidamente' registrada [en el


registro de windows] para poderla usar...
-> otra cosa es si se encuentra [o no] 'instalada/referenciada/...' en un


proyecto de macros
-> y [todavia] habria que 'averiguar' cuantas y cuales 'versiones' se


encuentran en el sistema [y si registradas o no]

aunque solo es posible marcar referencia en el proyecto de macros A UNA


SOLA [si varias]... podria 'haber' varias -?-
las librerias de conexion a sql, ado, etc. son 'compatibles hacia


arriba'... mas NO... 'hacia abajo' [los archivos 'danzan' entre equipos ?]

si estas programando para diferentes versiones/equipos/platformas/...


[probablemente]...
seria necesario 'barrer' -todas- las posibilidades desde vba [p.e. usando


la propiedad 'References' del proyecto VBE]
-> usando el metodo para 'agregar desde archivo' o... [quizas] leyen


do el registro de windows o... -?-

comentas por donde 'le damos' ?
saludos,
hector.


Respuesta Responder a este mensaje
#4 Héctor Miguel
27/09/2005 - 08:01 | Informe spam
hola, Luis !

... La pregunta "completa"... dirige a... si no hay tal referencia instalada en el proyecto VBA,
... detectar cual es la ultima (de muchas o varias versiones) disponible en un equipo para poder vincularla al proyecto
... con el metodo AddFromFile o usando el Guid.
Y es posible que la libreria o el archivo Activex que busco este en la libreria de la aplicacion o del sistema, segun sea ADO, Outlook, etc.



te paso [hasta donde se] cuales serian los procedimientos [segun el caso de la libreria 'buscada' Y en caso de no ser 'solo' ADO]... -?-
si requires ayuda adicional... comentas?
saludos,
hector.

1) para el caso de 'librerias' como Outlook, Word, etc 'se buscan/encuentran' en la carpeta de la 'suite'
-> p.e. c:\archivos de programa\microsoft office\office\
-> algunas 'requieren' una libreria 'aparte' [como excel 97/2000] con la extension .OLB y otras el ejecutable .EXE

2) para el caso de las librerias de ADO [ActiveX Data Objects]... se buscan/encuentran en la carpeta de archivos comunes
-> y segun si el SO/Windows es ingles o castellano <- :))
-> puedes 'encontrarla' [p.e.] preguntando al entorno -> MsgBox Environ("CommonProgramFiles") & "\System\ado"
-> la parte final de: \System\ado [me parece que] es 'constante' ;)

3) un 'intento' por 'registrar/agregar/... referencias a alguna version instalada Y registrada como...
Sub Agregar_Referencias()
ThisWorkbook.VBProject.References.AddFromFile _
"C:\Archivos de programa\Archivos comunes\System\ado\msado20.tlb"
End Sub
=> 'encuentra problemas' si la version de office/excel es xp/2002 o 2003 [y seguramente tambien en las siguientes] :-((
la causa...
-> en excel XP/2003 => REQUIERE [ademas] de un 'ajuste' [que por omision es 'NO'] a las 'Fuentes de confianza'
el ajuste es en: herramientas/macros/seguridad/[pestaña] fuentes de confianza y ...
poner una marca en: 'confiar en el acceso a proyectos de visual basic'
=> 'nota' que este sera un -verdadero- 'dolor de cabeza' :-( ya que...
OJO: NO es 'manipulable' desde el mismo vba :-(( revisa informacion en:
Is Access to the VB Project Allowed?
http://www.j-walk.com/ss/excel/tips/tip96.htm
XL97: How to Programmatically Create a Reference
http://support.microsoft.com/defaul...roduct=xlw
XL2000: How to Programmatically Create a Reference
http://support.microsoft.com/defaul...roduct=xlw

4) de las versiones de ADO que recuerdo [todas en el mismo directorio] los archivos correspondientes son...
C:\Archivos de programa\Archivos comunes\System\ado\msado*.*
Name FullPath Description
ADODB msado20.tlb Microsoft Activex Data Objects 2.0 Library
ADODB msado21.tlb Microsoft Activex Data Objects 2.1 Library
ADODB msado25.tlb Microsoft Activex Data Objects 2.5 Library
ADODB msado26.tlb Microsoft Activex Data Objects 2.6 Library
ADODB msado27.tlb Microsoft Activex Data Objects 2.7 Library
ADODB msado15.dll Microsoft Activex Data Objects 2.8 Library
ADOMD msadomd.dll Microsoft Activex Data Objects (Multi-Dimesional) 2.8 Library
ADOR msador15.dll Microsoft Activex Data Objects Recordset 2.8 Library
ADORH msadorh15.dll Microsoft Activex Data Objects Rowset Helper 2.8 Library
ADOX msadox.dll Microsoft Activex Data Objects Extensions 2.8 Library

5) las claves en el registro de windows [por si te decides por la opcion del Guid] son...
en el registro de windows... la version 2.0 esta en...
Mi PC\HKEY_CLASSES_ROOT\TypeLib\{00000200-0000-0010-8000-00AA006D2EA4}\2.0\0\win32
Mi PC\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{00000200-0000-0010-8000-00AA006D2EA4}\2.0\0\win32
variantes:
2.1 {00000201-...}\2.1\
2.5 {00000205-...}\2.5\
2.6 {00000206-...}\2.6\
2.7 {00000300-...}\2.7\
2.8 {00000300-...}\2.8\

6) seguramente habra otras variables que deberan ser consideradas :)
comentas -de nuevo- por donde le seguimos ?
Respuesta Responder a este mensaje
#5 Luis M
27/09/2005 - 18:18 | Informe spam
Hector, está interesante el curso y más claras las cosas.

Pienso que la idea seria recorrer mediante codigo los directorios donde
deben estar las librerias (.dll, .ocx, etc.) y verificar con base en una
lista previa de nombres de las mismas (que ya tenemos creada) cuáles existen
en el equipo y segun la ultima version que encontremos, ejecutar la adicion
de la referencia o la instalacion del respectivo GUID mediante código.

Con algun controlador de errores podemos detectar si esta activada la opcion
de Fuentes de Confianza, asociandole la instruccion que permita al usuario
activarla si esta restringida.

Escucho tus sugerencias

Gracias

Luis


"Héctor Miguel" escribió en el mensaje
news:%
hola, Luis !

... La pregunta "completa"... dirige a... si no hay tal referencia
instalada en el proyecto VBA,
... detectar cual es la ultima (de muchas o varias versiones) disponible
en un equipo para poder vincularla al proyecto
... con el metodo AddFromFile o usando el Guid.
Y es posible que la libreria o el archivo Activex que busco este en la
libreria de la aplicacion o del sistema, segun sea ADO, Outlook, etc.



te paso [hasta donde se] cuales serian los procedimientos [segun el caso
de la libreria 'buscada' Y en caso de no ser 'solo' ADO]... -?-
si requires ayuda adicional... comentas?
saludos,
hector.

1) para el caso de 'librerias' como Outlook, Word, etc 'se
buscan/encuentran' en la carpeta de la 'suite'
-> p.e. c:\archivos de programa\microsoft office\office\
-> algunas 'requieren' una libreria 'aparte' [como excel 97/2000] con
la extension .OLB y otras el ejecutable .EXE

2) para el caso de las librerias de ADO [ActiveX Data Objects]... se
buscan/encuentran en la carpeta de archivos comunes
-> y segun si el SO/Windows es ingles o castellano <- :))
-> puedes 'encontrarla' [p.e.] preguntando al entorno -> MsgBox
Environ("CommonProgramFiles") & "\System\ado"
-> la parte final de: \System\ado [me parece que] es 'constante'
;)

3) un 'intento' por 'registrar/agregar/... referencias a alguna version
instalada Y registrada como...
Sub Agregar_Referencias()
ThisWorkbook.VBProject.References.AddFromFile _
"C:\Archivos de programa\Archivos comunes\System\ado\msado20.tlb"
End Sub
=> 'encuentra problemas' si la version de office/excel es xp/2002 o 2003
[y seguramente tambien en las siguientes] :-((
la causa...
-> en excel XP/2003 => REQUIERE [ademas] de un 'ajuste' [que por omision
es 'NO'] a las 'Fuentes de confianza'
el ajuste es en: herramientas/macros/seguridad/[pestaña] fuentes de
confianza y ...
poner una marca en: 'confiar en el acceso a proyectos de visual basic'
=> 'nota' que este sera un -verdadero- 'dolor de cabeza' :-( ya
que...
OJO: NO es 'manipulable' desde el mismo vba :-(( revisa informacion
en:
Is Access to the VB Project Allowed?
http://www.j-walk.com/ss/excel/tips/tip96.htm
XL97: How to Programmatically Create a Reference

http://support.microsoft.com/defaul...roduct=xlw
XL2000: How to Programmatically Create a Reference

http://support.microsoft.com/defaul...roduct=xlw

4) de las versiones de ADO que recuerdo [todas en el mismo directorio] los
archivos correspondientes son...
C:\Archivos de programa\Archivos comunes\System\ado\msado*.*
Name FullPath Description
ADODB msado20.tlb Microsoft Activex Data Objects 2.0 Library
ADODB msado21.tlb Microsoft Activex Data Objects 2.1 Library
ADODB msado25.tlb Microsoft Activex Data Objects 2.5 Library
ADODB msado26.tlb Microsoft Activex Data Objects 2.6 Library
ADODB msado27.tlb Microsoft Activex Data Objects 2.7 Library
ADODB msado15.dll Microsoft Activex Data Objects 2.8 Library
ADOMD msadomd.dll Microsoft Activex Data Objects (Multi-Dimesional) 2.8
Library
ADOR msador15.dll Microsoft Activex Data Objects Recordset 2.8 Library
ADORH msadorh15.dll Microsoft Activex Data Objects Rowset Helper 2.8
Library
ADOX msadox.dll Microsoft Activex Data Objects Extensions 2.8 Library

5) las claves en el registro de windows [por si te decides por la opcion
del Guid] son...
en el registro de windows... la version 2.0 esta en...
Mi
PC\HKEY_CLASSES_ROOT\TypeLib\{00000200-0000-0010-8000-00AA006D2EA4}\2.0\0\win32
Mi
PC\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{00000200-0000-0010-8000-00AA006D2EA4}\2.0\0\win32
variantes:
2.1 {00000201-...}\2.1\
2.5 {00000205-...}\2.5\
2.6 {00000206-...}\2.6\
2.7 {00000300-...}\2.7\
2.8 {00000300-...}\2.8\

6) seguramente habra otras variables que deberan ser consideradas :)
comentas -de nuevo- por donde le seguimos ?

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida