Newsgroup: it.comp.appl.access
Titolo: Selezione librerie DAO da codice

Ciao a tutti,
ho distribuito un software che perň da' alcuni problemi su alcune
installazioni di Access. Su queste macchine, quando si va a vedere i
riferimenti alle varie librerie, si ottiene questo:
http://www.cpo.it/sqtm/faq.jpg
Se ho capito bene, il software fa riferimento a funzioni DAO 3.6 e non
essendo installata la libreria in questione, Access si blocca. La
soluzione č andare ad aprire questa schermata, deselezionare la
libreria con il fastidioso "MANCA:" e selezionare nella lista
"Microsoft DAO 3.51 Object Library" oppure "Microsoft DAO 2.5/3.5
Compatibility Library".
Naturalmente non posso eseguire tutte queste operazioni su un computer
in Arabia Saudita o in Argentina, per cui sto cercando una soluzione
generale al problema. Esiste una procedura che da codice vada a vedere
quali librerie siano installate e ne selezioni/deselezioni una o
un'altra?
Grazie!
Mariano Tomatis
www.marianotomatis.it

 
www.marianotomatis.it
Se generi un MDE parzialmente risolvi il problema dell'aggiornamento
della lib DAO3.6 e 3.5.....!
Ma potrebbe non essere sufficiente.
Io uso questa Routine per verificare sia selezionata la Lib DAO:
Public Function IsDAO_Referenced() As Boolean
'==========================================================================
'Name      : IsDAO_Referenced (Function)
'Purpose   : Verifica se Sono Settati i Riferimenti alle Lib. DAO
'Author    : Alessandro Baraldi
'Web_Site  : 
http://digilander.iol.it/ik2zok/
'E.Mail    : 
ik2...@libero.it
'Date      : 01 febbraio 2002
'Called by :
'Calls     :
'Inputs    : Nothing
'Output    : True only if is DAO Reference SET
'==========================================================================
  On Error GoTo 0
  Dim ref As Access.Reference
  Dim blnBroken As Boolean
 
  Const cDAOGUID As String = "{00025E01-0000-0000-C000-000000000046}"
  Const cVBAGUID As String = "{000204EF-0000-0000-C000-000000000046}"
  Const cADOGUID As String = "{00000205-0000-0010-8000-00AA006D2EA4}"
  Const cACCESSGUID As String = "{4AFFC9A0-5F99-101B-AF4E-00AA003F0F07}"
 
  IsDAO_Referenced = False
  Application.SetOption "Error Trapping", 2
 
  For Each ref In Application.References
    blnBroken = ref.IsBroken
    If ref.Name = "DAO" And ref.Kind = 0 And StrComp(ref.Guid, cDAOGUID,
1) = 0 And Not blnBroken Then
      IsDAO_Referenced = True
      Exit For
    End If
  Next ref
  Set ref = Nothing
End Function
Nel caso non lo fosse per inserirla utilizza il seguente trovato 
nell'HELP
Function RiferimentoDaFile(strNomeFile As String) As Boolean
	Dim ref As Reference
	On Error GoTo Error_RiferimentoDaFile
	Set ref = References.AddFromFile(strNomeFile)
	RiferimentoDaFile = True
Exit_RiferimentoDaFile:
	Exit Function
Error_RiferimentoDaFile:
	MsgBox Err & ": " & Err.Description
	RiferimentoDaFile = False
	Resume Exit_RiferimentoDaFile
End Function
È possibile richiamare tale funzione utilizzando una routine che crea un
riferimento al Controllo calendario come quella riportata di seguito.
Sub CreaRiferimentoCalendario ()
	If RiferimentoDaFile("C:\Windows\System\Mscal.ocx") = True Then
		MsgBox "Riferimento impostato con esito positivo."
	Else
		MsgBox "Riferimento non impostato con esito positivo."
	End If
End Sub
Ciao.
@Alex.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG