Prima di tutto devi fare molta attenzione a quello che hai fatto, è evidente che un errore di digitazione invalida il sistema... e questo dovrebbe farti pensare.
Quando si fa un applicativo si deve, oltre a farlo funzionare, fare in modo che l'errore sia evitabile, e quando non lo fosse che venga gestito... è difficile, ma obbligatorio.
Nel tuo caso commetti molti errori concettuali, ad esempio:
1° La cartella in cui sono i File è FISSA o SPOSTABILE...?
2° Rimane sempre in posizione relativa al file di Access...?
Se così fosse devi definite un PATH(Percorso) relativo e comporre quello assoluto...!
Di norma si preferisce NON impostare il PATH completo, ma indicare in un altro posto il PATH di Cartelle Speciali(come quelle che contengono i File) in modo che cambiando quello puoi spostare tutto in pochi secondi senza dover modificare molto...
Ne consegue che nel Campo della Tabella dovresti memorizzare il NomeFile o Parte del Percorso nel caso in cui la Cartella abbia al suo interno una ulteriore suddivisione gerarchica di SottoCartelle.
Esempio:
PercorsoCompleto=CurrentProject.Path & "\Cartella\" & Me!NomeFile.Value
Detto ciò è bene prima di lanciare un File appurare che il File esista, perchè non sempre si lavora in casa propria e non sempre tu sei l'unico utilizzatore... e, soprattutto se si lavora in rete è bene avere un occhio di riguardo per la gestione errori...!
Ne consegue che devi controllare:
Private Sub cmdHyperLink_Click()
If EsisteFile("C:\Consumi\" & Me!FattN) = True Then
Application.FollowHyperlink "C:\Consumi\" & Me!FattN
Else
MsgBox "Il File non esiste oppure il Percorso è errato." & vbNewLine & "C:\Consumi\" & Me!FattN, vbCritical,"ERRORE"
End If
End Sub
Questa Funzione è generica, si mette in un Modulo standard e la si usa quando serve...
Public Function EsisteFile(ByVal str As String) As Boolean
On Error Resume Next
EsisteFile = (GetAttr(str) And vbDirectory) = 0
End Function