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

#6 Héctor Miguel
29/09/2005 - 09:11 | Informe spam
hola, Luis !

tarde... :-(( pero... 'sin sue#o' :DD

... recorrer mediante codigo los directorios donde deben estar las librerias (.dll, .ocx, etc.)
... verificar con base en una lista previa de nombres de las mismas (que ya tenemos creada) cuales existen en el equipo
... segun la ultima version que encontremos, ejecutar la adicion de la referencia o la instalacion del respectivo GUID
... detectar... la opcion de Fuentes de Confianza, asociandole la instruccion que permita al usuario activarla si esta restringida.



despues de investigar algunos datos [por demas interesantes, aunque -solo- referentes a ADO]... :-( [p.e.]
-> la libreria msado15.dll es [desde office/excel '97] la que -en realidad- 'tiene/controla' la ultima version del sistema :))

te paso al final la forma mas 'delgada/sencilla/agil/...' que se me ha ocurrido despues de tales 'pesquisas' ;)
sobre recomendar que hagas [suficientes] pruebas antes de 'validar' si la forma es la adecuada para tus propositos :D
[por lo que debieras 'analizar' primero las lineas de codigo antes de 'correr riesgos' :DD
OJO con las dos instrucciones ThisWorkbook.Close False [por si no deseas 'terminar' la aplicacion] ;)

si cualquier duda [o informacion adicional, como las demas librerias o componentes]... comentas?
saludos,
hector.

notas 'previas':
1) si se instala en excel 97, ADO no brinda soporte para un 'CopyFromRecordSet' :( [DAO si lo soporta para excel '97]
2) se 'asume' que si la libreria esta 'en su lugar'... -tambien- esta 'debidamente' registrada [en el registro de windows] :)
con lo cual se evita el andar 'danzando' por el registro para ver si... [etc. etc. etc.]
3) en caso de no encontrarse la libreria en el sistema... deberas 'instruir' al usuario para que...
obtenga la version mas reciente del componente [la 2.8] en: http://tinyurl.com/49duk
que seleccione primero el idioma en que necesita la instalacion del componente
que lea bien [o imprima] las instrucciones antes de iniciar la descarga y...
que no se olvide de descargar tambien el 'parche' [Q832483]

la primer macro [SI en un modulo de codigo 'normal'] deberia ser 'llamada' en el evento '_open' del libro :) ==Option Private Module
Public Ruta As String, Version
Sub Revisar_ADO()
Ruta = Environ("CommonProgramFiles") & "\System\ado\msado15.dll"
If Dir(Ruta) = "" Then MsgBox "ADO no se encuentra en el sistema.": Exit Sub
With CreateObject("Scripting.FileSystemObject")
Version = .GetFileVersion(Ruta)
End With
If Len(Version) Then
Version = Left(Version, InStr(Version, ".") + 1) ' esta linea es OPCIONAL ;) '
MsgBox "El sistema cuenta con ADO " & Version ' este MsgBox es OPCIONAL ;) '
Registrar_ADO
Else
MsgBox "No se puede determinar la version del componente..." & vbCr & _
"Pon aqui otras instrucciones, como ""obtener"" las librerias de la web..."
ThisWorkbook.Close False
End If
End Sub

Sub Registrar_ADO()
Dim Proyecto
If Val(Application.Version) >= 10 Then
On Error Resume Next
Set Proyecto = ActiveWorkbook.VBProject
If Err.Number <> 0 Then
Err.Clear
MsgBox "Las medidas de seguridad no permiten que se ejecute un procedimiento." & vbCr & vbCr & _
"Para cambar las medidas de seguridad..." & vbCr & vbCr & _
"1. Selecciona [menu] Herramientas - Macro - Seguridad..." & vbCr & _
"2. Seleciona la pestaña: ""Fuentes de Confianza""" & vbCr & _
"3. Pon una marca en: ""Confiar en el acceso a proyectos de Visual Basic""" & vbCr & vbCr & _
"4. Deberas abrir de nuevo este libro.", vbCritical, "ERROR GRAVE !!!"
ThisWorkbook.Close False
End If
End If
ThisWorkbook.VBProject.References.AddFromFile Ruta
End Sub
Respuesta Responder a este mensaje
#7 Luis M
29/09/2005 - 15:25 | Informe spam
Hector, mil&mil gracias. Estan muy completos, profesionales y utiles tus
sugerencias. Gracias por tu esfuerzo y tu tiempo.

Luis


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

tarde... :-(( pero... 'sin sue#o' :DD

... recorrer mediante codigo los directorios donde deben estar las
librerias (.dll, .ocx, etc.)
... verificar con base en una lista previa de nombres de las mismas (que
ya tenemos creada) cuales existen en el equipo
... segun la ultima version que encontremos, ejecutar la adicion de la
referencia o la instalacion del respectivo GUID
... detectar... la opcion de Fuentes de Confianza, asociandole la
instruccion que permita al usuario activarla si esta restringida.



despues de investigar algunos datos [por demas interesantes, aunque -solo-
referentes a ADO]... :-( [p.e.]
-> la libreria msado15.dll es [desde office/excel '97] la que -en
realidad- 'tiene/controla' la ultima version del sistema :))

te paso al final la forma mas 'delgada/sencilla/agil/...' que se me ha
ocurrido despues de tales 'pesquisas' ;)
sobre recomendar que hagas [suficientes] pruebas antes de 'validar' si la
forma es la adecuada para tus propositos :D
[por lo que debieras 'analizar' primero las lineas de codigo antes de
'correr riesgos' :DD
OJO con las dos instrucciones ThisWorkbook.Close False [por si no deseas
'terminar' la aplicacion] ;)

si cualquier duda [o informacion adicional, como las demas librerias o
componentes]... comentas?
saludos,
hector.

notas 'previas':
1) si se instala en excel 97, ADO no brinda soporte para un
'CopyFromRecordSet' :( [DAO si lo soporta para excel '97]
2) se 'asume' que si la libreria esta 'en su lugar'... -tambien- esta
'debidamente' registrada [en el registro de windows] :)
con lo cual se evita el andar 'danzando' por el registro para ver si...
[etc. etc. etc.]
3) en caso de no encontrarse la libreria en el sistema... deberas
'instruir' al usuario para que...
obtenga la version mas reciente del componente [la 2.8] en:
http://tinyurl.com/49duk
que seleccione primero el idioma en que necesita la instalacion del
componente
que lea bien [o imprima] las instrucciones antes de iniciar la descarga
y...
que no se olvide de descargar tambien el 'parche' [Q832483]

la primer macro [SI en un modulo de codigo 'normal'] deberia ser
'llamada' en el evento '_open' del libro :) ==> Option Private Module
Public Ruta As String, Version
Sub Revisar_ADO()
Ruta = Environ("CommonProgramFiles") & "\System\ado\msado15.dll"
If Dir(Ruta) = "" Then MsgBox "ADO no se encuentra en el sistema.": Exit
Sub
With CreateObject("Scripting.FileSystemObject")
Version = .GetFileVersion(Ruta)
End With
If Len(Version) Then
Version = Left(Version, InStr(Version, ".") + 1) ' esta linea es
OPCIONAL ;) '
MsgBox "El sistema cuenta con ADO " & Version ' este MsgBox es OPCIONAL
;) '
Registrar_ADO
Else
MsgBox "No se puede determinar la version del componente..." & vbCr & _
"Pon aqui otras instrucciones, como ""obtener"" las
librerias de la web..."
ThisWorkbook.Close False
End If
End Sub

Sub Registrar_ADO()
Dim Proyecto
If Val(Application.Version) >= 10 Then
On Error Resume Next
Set Proyecto = ActiveWorkbook.VBProject
If Err.Number <> 0 Then
Err.Clear
MsgBox "Las medidas de seguridad no permiten que se ejecute un
procedimiento." & vbCr & vbCr & _
"Para cambar las medidas de seguridad..." & vbCr & vbCr
& _
"1. Selecciona [menu] Herramientas - Macro -
Seguridad..." & vbCr & _
"2. Seleciona la pestaña: ""Fuentes de Confianza""" &
vbCr & _
"3. Pon una marca en: ""Confiar en el acceso a
proyectos de Visual Basic""" & vbCr & vbCr & _
"4. Deberas abrir de nuevo este libro.", vbCritical,
"ERROR GRAVE !!!"
ThisWorkbook.Close False
End If
End If
ThisWorkbook.VBProject.References.AddFromFile Ruta
End Sub

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida