Newsgroup: it.comp.appl.access
Titolo: Verifica collegamento ipertestuale

Ciao a tutti. Vorrei sapere se è possibile verificare la correttezza
di un collegamento ipertestuale. In una tabella ho un campo dove viene
riportato il collegamento ipertestuale ad un altro documento. E'
possibile tramite VBA controllare se il collegamento è funzionante?
Dovrei redigere un report che mi dica quali sono i collegamenti non
funzionanti e quelli mancanti. Mi servirebbe però sapere come fare a
fare la verifica.
Grazie
Ciao
Stefano

 ha scritto nel messaggio 
news:ff4661e4-8b84-4eab...@20g2000yqt.googlegroups.com...
Ciao a tutti. Vorrei sapere se č possibile verificare la correttezza
di un collegamento ipertestuale. In una tabella ho un campo dove viene
riportato il collegamento ipertestuale ad un altro documento. E'
possibile tramite VBA controllare se il collegamento č funzionante?
Dovrei redigere un report che mi dica quali sono i collegamenti non
funzionanti e quelli mancanti. Mi servirebbe perň sapere come fare a
fare la verifica.
Grazie
Ciao
Stefano
Sě č possibile per esempio usando la funzione Dir.
If Dir("TuoPercorsoFile") > "" then
'il file esiste
else
'il file non esiste.
End if
Ciao, Carlo

 Ciao, Carlo
Ottimo, grazie. Adesso però non so come fare a metterlo in una query
per redigere poi un report. Ho trovato una funzione su un altro post
ma invece di restituire vero/falso restituisce 0 in qualsiasi caso. La
funzione è questa:
'*********************************************
'Controlla se un File esiste o no, restituisce
'True se esiste False se non esiste.
'NomeFile = percorso completo del File
'*********************************************
Function EsisteFile(NomeFile As String) As Boolean
On Local Error GoTo GestoreErrori
'Controlla l'esistenza del file specificato.
If NomeFile <> "" Then
    EsisteFile = IIf(Dir(NomeFile, vbNormal Or vbHidden Or vbReadOnly
Or
vbSystem) <> "", True, False)
Else
    EsisteFile = False
End If
Exit Function
GestoreErrori:
'Sì è verificato un errore: il file non esiste.
EsisteFile = False
End Function
Testato su: Tutti i Sistemi operativi
e la query che ho creato è questa:
SELECT ProdottiChimici.IDProdotto, ProdottiChimici.IDFornitorePC,
ProdottiChimici.Descrizione, ProdottiChimici.Prezzo,
ProdottiChimici.SOV, ProdottiChimici.SchedaSicurezza,
ProdottiChimici.Selezionato, EsisteFile([SchedaSicurezza]) AS Espr1
FROM ProdottiChimici
Come mai non riesco a farla funzionare?

 ha scritto nel messaggio 
news:e8eccb17-57c9-4364...@k36g2000yqe.googlegroups.com...






----------------------------
Ci provo.
Controlla se in [SchedaSicurezza] esiste sempre un percorso di file 
valido...se no, escludi il record dalla query.
cambia ....EsisteFile([SchedaSicurezza]) AS Espr1
FROM ProdottiChimici
in... EsisteFile([SchedaSicurezza]) AS Esiste
FROM ProdottiChimici
Metti la spunta su "mostra" in corrispondenza della colonna "Esiste".
La funzione mettila in un modulo pubblico e scrivila così:
Public Function EsisteFile(NomeFile As String) As Boolean
On Error GoTo GestoreErrori
If NomeFile <> "" Then
 EsisteFile = IIf(Dir(NomeFile, vbNormal Or _
 vbHidden Or vbReadOnly Or vbSystem) <> "", True, False)
Else
    EsisteFile = False
End If
Exit Function
GestoreErrori:
EsisteFile = False
End Function
Se tutto funziona la colonna "Esiste" dovrebbe restituire una serie di 0 
o -1 oppure vero/falso
Ciao, Carlo

 Come mai non riesco a farla funzionare?
Se il campo SchedaSicurezza non č un campo testo col percorso
completo del file ma un campo ipertestuale, devi estrarre il percorso:
EsisteFile(HyperlinkPart([SchedaSicurezza];5))
o nel enunciato SQL con comma
EsisteFile(HyperlinkPart([SchedaSicurezza],5))
-- 
HTH
Karl
*********
Access FAQ: 
www.donkarl.com/it
 

 ha scritto nel messaggionews:e8eccb17-57c9-4364...@k36g2000yqe.googlegroups.com...

Ciao Carlo, grazie mille per l'interessamento. Ho fatto come hai detto
ma non cambia nulla. Ho provato a cancellare un'intera cartella di
schede di sicurezza ma la colonna "esiste" riporta solo "0". Ho fatto
una prova. In una maschera che utilizzo solitamente per inserire i
link alle schede di sicurezza, ho messo una casella di testo con la
funzione IsHyperlink per farmi dire se riconosce come collegamento
ipertestuale la stringa che c'è in "SChedaSicurezza" e mi dice di "no"
su tutti i link. Il mio collegamento ipertestuale riporta tutto il
path del file. Forse dipende da quello?

 Access FAQ:
www.donkarl.com/it
Ah, grazie. Era proprio questo il problema. Infatti avevo fatto delle
prove, ma non sapevo che i collegamenti ipertestuali fossero così.
Grazie mille a tutti quanti.
Stefano