Control de Referencias en Acces 2003

14/05/2010 - 18:44 por jravles | Informe spam
Hola grupo!!
Tengo una base de datos que la utilizan varios usuarios. He creado en
un modulo el código para poder imprimir en pdf a través del pdf creator.
El problema que tengo es que si el usuario que abre la base de datos no
tiene el pdfcreator, o la versión 0.9.9 me da error de que falta una
referencia al mismo, si manualmente la quito, a la hora de generar el
pdf aunque el cliente que se conecte lo tenga instaldo me da error por
que esta referencia no esta activada. ¿Alguien tiene idea de como puedo
controlar las referencias o al menos que el que no tenga el pdfcreator
no me salte un error i me pare la ejecución de la base de datos?

Gracias
 

Leer las respuestas

#1 Emilio
14/05/2010 - 18:56 | Informe spam
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
Hola!
puedes adaptar este código

'*******************************************************************************
'* Referencias
'* revisa y añade o repara las referencias predefinidas
'* uso: Referencias
'* ESH 10/06/07 13:08
'* Si utilizas este codigo, respeta la autoría y los créditos
'*******************************************************************************

Public Sub Referencias()

Dim i As Long, _
Referencia As Reference, _
MatrizReferencias(1, 21) As String, _
blnExiste As Boolean

On Error GoTo Referencias_TratamientoErrores

' relleno una matriz con las referencias que quiero que tenga mi aplicación,
p.ej.:
MatrizReferencias(0, 0) = "stdole"
MatrizReferencias(1, 0) = "C:\WINDOWS\system32\stdole2.tlb"
MatrizReferencias(0, 1) = "DAO"
MatrizReferencias(1, 1) = "C:\Archivos de programa\Archivos
comunes\Microsoft Shared\DAO\dao360.dll"
MatrizReferencias(0, 2) = "Office"
MatrizReferencias(1, 2) = "C:\Archivos de programa\Archivos
comunes\Microsoft Shared\OFFICE12\MSO.DLL"
MatrizReferencias(0, 3) = "ADODB"
MatrizReferencias(1, 3) = "C:\Archivos de programa\Archivos
comunes\System\ado\msado15.dll"
MatrizReferencias(0, 4) = "Shell32"
MatrizReferencias(1, 4) = "C:\WINDOWS\system32\SHELL32.dll"
MatrizReferencias(0, 5) = "VBA"
MatrizReferencias(1, 5) = "C:\Archivos de programa\Archivos
comunes\Microsoft Shared\VBA\VBA6\VBE6.DLL"
MatrizReferencias(0, 6) = "Access"
MatrizReferencias(1, 6) = "C:\Archivos de programa\Microsoft
Office\OFFICE11\MSACC.OLB"
MatrizReferencias(0, 7) = "ADODB"
MatrizReferencias(1, 7) = "C:\Archivos de programa\Archivos
comunes\System\ado\msado21.tlb"
MatrizReferencias(0, 8) = "SnapshotViewerControl"
MatrizReferencias(1, 8) = "C:\Archivos de programa\Archivos
comunes\Microsoft Shared\Snapshot Viewer\SNAPVIEW.OCX"
MatrizReferencias(0, 9) = "CDO"
MatrizReferencias(1, 9) = "C:\WINDOWS\system32\cdosys.dll"
MatrizReferencias(0, 10) = "Excel"
MatrizReferencias(1, 10) = "C:\Archivos de programa\Microsoft
Office\OFFICE11\EXCEL.EXE"
MatrizReferencias(0, 11) = "Graph"
MatrizReferencias(1, 11) = "C:\Archivos de programa\Microsoft
Office\OFFICE11\GRAPH.EXE"
MatrizReferencias(0, 12) = "Outlook"
MatrizReferencias(1, 12) = "C:\Archivos de programa\Microsoft
Office\OFFICE11\msoutl.olb"
MatrizReferencias(0, 13) = "PowerPoint"
MatrizReferencias(1, 13) = "C:\Archivos de programa\Microsoft
Office\OFFICE11\MSPPT.OLB"
MatrizReferencias(0, 14) = "Publisher"
MatrizReferencias(1, 14) = "C:\Archivos de programa\Microsoft
Office\OFFICE11\MSPUB.TLB"
MatrizReferencias(0, 15) = "MSScriptControl"
MatrizReferencias(1, 15) = "C:\WINDOWS\system32\msscript.ocx"
MatrizReferencias(0, 16) = "VBScript_RegExp_55"
MatrizReferencias(1, 16) = "C:\WINDOWS\system32\vbscript.dll"
MatrizReferencias(0, 17) = "Word"
MatrizReferencias(1, 17) = "C:\Archivos de programa\Microsoft
Office\OFFICE11\MSWORD.OLB"
MatrizReferencias(0, 18) = "Office"
MatrizReferencias(1, 18) = "C:\Archivos de programa\Archivos
comunes\Microsoft Shared\OFFICE11\MSO.DLL"
MatrizReferencias(0, 19) = "Shell32"
MatrizReferencias(1, 19) = "C:\WINDOWS\system32\SHELL32.dll"
MatrizReferencias(0, 20) = "MAPI"
MatrizReferencias(1, 20) = "C:\ARCHIV~1\ARCHIV~1\SYSTEM\MSMAPI\3082\CDO.DLL"
MatrizReferencias(0, 21) = "Scripting Runtime"
MatrizReferencias(1, 21) = "C:\Windows\System32\SCRRUN.DLL"
' recorro la matriz
For i = 0 To UBound(MatrizReferencias, 2)
' comparo las referencias existentes con las que tengo en la matriz
For Each Referencia In Application.References
If Referencia.Name = MatrizReferencias(0, i) And Referencia.IsBroken
Then
blnExiste = False ' si la referencia está rota la elimino y
salgo
Application.References.Remove Referencia
Exit For
ElseIf Referencia.Name = MatrizReferencias(0, i) Then
blnExiste = True ' si ya existe salto a la siguiente
Exit For
Else
blnExiste = False ' sino, sigo
End If
Next Referencia
' si no estaba entre las ya referenciadas o estaba rota, la añado
If Not blnExiste Then
Application.References.AddFromFile MatrizReferencias(1, i)
End If
Next i
' listo todas las referencias
For Each Referencia In Application.References
Debug.Print Referencia.Name, Referencia.FullPath
Next Referencia


Referencias_Salir:
On Error GoTo 0
Exit Sub

Referencias_TratamientoErrores:
Select Case Err
Case 29060 ' no existe el archivo
MsgBox "El Archivo " & MatrizReferencias(1, i) & " no existe",
vbCritical + vbOKOnly, "ATENCION"
Resume Next
Case Else
MsgBox "Error " & Err & " en proc.: Referencias de Módulo:
mdlReferencias (" & Err.description & ")", vbCritical + vbOKOnly, "ATENCION"
End Select
Resume Referencias_Salir
Resume Next
End Sub ' Referencias

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/10]
miliuco56 ALGARROBA hotmail PUNTO com
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
"jravles" escribió en el mensaje de noticias
news:
Hola grupo!!
Tengo una base de datos que la utilizan varios usuarios. He creado en un
modulo el código para poder imprimir en pdf a través del pdf creator. El
problema que tengo es que si el usuario que abre la base de datos no tiene
el pdfcreator, o la versión 0.9.9 me da error de que falta una referencia
al mismo, si manualmente la quito, a la hora de generar el pdf aunque el
cliente que se conecte lo tenga instaldo me da error por que esta
referencia no esta activada. ¿Alguien tiene idea de como puedo controlar
las referencias o al menos que el que no tenga el pdfcreator no me salte
un error i me pare la ejecución de la base de datos?

Gracias

__________ Information from ESET Smart Security, version of virus
signature database 5115 (20100514) __________

The message was checked by ESET Smart Security.

http://www.eset.com







__________ Information from ESET Smart Security, version of virus signature database 5115 (20100514) __________

The message was checked by ESET Smart Security.

http://www.eset.com

Preguntas similares