Newsgroup: it.comp.appl.access
Titolo: verifica esistenza file e non path

Ciao, sto realizzando un archivio immagini, e ringrazio quanti hanno
messo a disposizione la loro esperienza nei post e sul Sitocomune,
Ho un problema con un caso particolare di controllo esistenza file.
Spero mi possiate dare qualche dritta. Ho letto i precedenti post, ma
non sono riuscito a venirne a capo.
In un campo (nome campo: miopath) può essere digitato un percorso (es
C:\prova\imamgini\aaa.jpg) da utilizzare come origine per un controllo
immagine della maschera o report.
Se però viene digitato solo un path esistente (C:\prova\imamgini\)
senza nome file, la funzione Dir mi restituisce comunque un nome (il
primo file della directory).
Riesco ad intercettare l'errore quando cerco di impostare l'origine
Picture (vedi codice seguente), ma avrei necessità di verificare con
una query quali sono i record con valori non validi.
Quindi i quesiti sono:
1) come posso fare, in una query, a identificare i campi Path con
valori non validi?
2) Come faccio a verificare che venga sempre digitato il nome di un
file e non solo il path (per quanto corretto possa essere) ?
3) come posso accorgermi che il valore inserito è relativo ad un path
senza nome file?
Spero che il quesito possa essere di utilità più generale.
Grazie per l'aiuto.
Casper
Private Sub Form_Current()
On Error GoTo Err_Form_Current
Dim FileExist As Boolean
FileExist = CBool(Len(Dir(Me!path.Value)) <> 0)
If FileExist Then
   	Me![Immagine14].Picture = Me![miopath].Value
End If
Exit_Form_Current:
    Exit Sub
Err_Form_Current:
    Msg = "Attenzione, Percorso errato o incompleto"
    MsgBox Msg  'Err.Description
    Resume Exit_Form_Current
End Sub

 ha scritto nel messaggio 
news:70c154bc.05020...@posting.google.com...

Verifica la presenza del punto (della estensione del file) nella stringa:
Es.
If Instr(Me!path,".") > 0 then
    '--> il nome del file c'è
else
    '--> nisba!
end if
Io comunque separerei il path dal nome del file, anche per evitarmi la 
possibilità di arrivare al limite dei 255 caratteri...
Ciao.
-- 
Sergio MAZZA 

Casper....
volevo chiederti a proposito,
 poichè stavo lavorando su progetto per archiviare dei documenti,
se usi un ocx (e se si quale) per importare immagini da scanner ,
o se utilizzi solo immagini già presenti sul computer. 

 ha scritto nel messaggio 
news:4200fb43$0$32335$5fc...@news.tiscali.it...

Sul sitocomune c'è un'applicazione di Roberto
e usa ocx Kodak
MAssimiliano 


Grazie Sergio per la dritta. Speravo ci fosse qualche funzione a me
sconosciuta che potesse svolgere direttamente il controllo, ma anche
così va bene lo stesso, grazie!

Ciao, purtoppo no, non ho ancora implementato nulla di scanner, uso
jpg scaricati su pc da macchina digitale. La risposta che ti ha dato
MAssimiliano è quella che ti avrei dato io. Buon lavoro :-)
Casper

 Casper
Non esiste, e non esisterà mai "...una funzione sconosciuta.." che ci 
risolva i problemi; esistono invece delle tecniche che ti permettono di 
ottenere dei risultati.
Oltre al suggerimento che è moolto semplice e veloce ma anche limitato, 
esistono funzioni in VBScript che puoi richiamare ed utilizzare:
es.
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
MsgBox "il nome del file è: " & fso.GetFileName("C:\pippo.txt")
Set fso = nothing
Ma anche questo pezzo di codice ha i suoi limiti, perché leggendo l'help del 
metodo GetFileName:
oggetto.GetFileName(specPercorso)
Il metodo GetFileName restituisce una stringa di lunghezza zero ("") se 
specPercorso non finisce con il componente specificato.
Nota   Il metodo GetFileName funziona solo per la stringa del percorso 
specificata. Non verrà eseguito alcun tentativo di risolvere il percorso né 
di verificare l'esistenza del percorso specificato.
Quindi avrai sì il nome del file ma non saprai se effettivamente esiste...
Ciao.
-- 
Sergio MAZZA 

casper wrote:

Ciao, ti propongo 2 metodi per controllare l'esistenza di un File, una
Subroutine e una Function.
1° Metodo:
'*********************************************
'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
2° Metodo:
'*********************************************
'Controlla se un File esiste o no
'file = file da controllare
'exist = restituisce -1 se trova il file, 0 se non lo trova
'*********************************************
Public Sub EsistFile2(file As String, exist As Integer)
Dim nfile As Integer
nfile = FreeFile
exist = 0
Open file For Append As #nfile
exist = (LOF(nfile) > 1)
Close #nfile
If exist = 0 Then Kill file
End Sub
Sono metodi usati all'interno di alcuni miei applicativi, andranno
probabilmente rivisti e "riadattati" al tuo codice.
Per ogni problematica, da lunedì sarò nuovamente presente durante l'orario
ufficio!!! Saluti,
-- 
strano...mavero (da casa)