Newsgroup: it.comp.appl.access
Titolo: Windows Me + Access97: Application.FileSearch.FileName dà errore

Nel mio nuovo PC (PentiumIII 866MHz, 256 MB di Ram) in cui ho installato
Access 97 e che lavora con Windows Me,
mi succede quanto segue.
La seguente routine è stata ricopiata dall'help "Esempio della proprietà
FileName":
Dim i As Integer, fs As Variant
Set fs = Application.FileSearch
With fs
    .LookIn = "C:\Documenti\Immagini PhotoWise\11 dicembre 2000"
    .FileName = "image*"
    If .Execute > 0 Then
        MsgBox "Trovati " & .FoundFiles.Count & " file"
        For i = 1 To .FoundFiles.Count
            MsgBox .FoundFiles(i)
        Next i
    Else
        MsgBox "Nessun file trovato"
    End If
End With
e che serve a ricercare tutti i file che si trovano C:\Documenti\Immagini
PhotoWise\11 dicembre 2000 e che cominciano con image, al momento
dell'esecuzione mi dà il seguente errore:
Errore di run-time '5': Chiamata di routine o argomento non validi
e se pigio il tasto Debug si evidenzia in giallo la seguente riga:
    .FileName = "image*"
Di fatto mi dà errore nel caso in cui la stringa dell'argomento contiene il
carattere * (asterisco).
Infatti se metto nella stringa solamente "image", non mi dà errore, anche se
mi compare la msgbox con la scritta "Nessun file trovato", visto che non
esiste alcun file che si chiama SOLAMENTE image.
Se poi nella stringa scrivo "image003.jpg" (file effettivamente esistente)
tutto funziona correttamente: la
prima msgbox mi dice "Trovati 1 file" e nella seconda msgbox compare la
scritta "C:\Documenti\Immagini PhotoWise\11 dicembre 2000\IMAGE003.jpg" che
è il path completo del file ricercato.
Faccio presente che nel mio computer dell'ufficio in cui ho installato
Access 97 con sistema operativo Windows 95 non ho alcun problema, come non
ho avuto alcun problema, sino una settimana fa, nel mio vecchio PC di casa
in cui era installato Access 97 con il sistema operativo Windows 98 prima
edizione.
Per scrupolo ho controllato i riferimenti delle librerie e in tutti e tre i
casi risultano spuntati nell'ordine:
- Visual Basic For Application
- Microsoft Access 8.0 Object Library
- Microsoft DAO 3.51 Object Library
Qualcuno ha per caso un'idea del perchè ?
C'è per caso qualcuno che usa Access 97 con Windows Me e che è così gentile
di verificare se questa routine gli genera lo stesso errore, per capire così
se è un problema di incompatibilità tra A97 e il nuovo SO?
Cosa pensate io debba fare?
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------

 ha scritto nel messaggio
news:X7u46.229054$hk4.10...@news.infostrada.it...

Ciao Roberto
io ho provato questa funzione:
Public Function FileTrova()
Dim i As Integer, fs As Variant
Set fs = Application.FileSearch
With fs
    .LookIn = "C:\Documenti\"
    .FileName = "Agg"
    If .Execute > 0 Then
        MsgBox "Trovati " & .FoundFiles.Count & " file"
        For i = 1 To .FoundFiles.Count
            MsgBox .FoundFiles(i)
        Next i
    Else
        MsgBox "Nessun file trovato"
    End If
End With
End Function
E' la stessa della tua. Prima di tutto metti un riferimento alla libreria
.olb Microsoft Word 8.0 (o 9.0) Object Library )MSWORD8 (o 9) .OLB.
Poi evita di mettere gli asterischi. Infatti la funzione che ho scritto
trova sia i file del tipo "pellegrinAGGio.doc", sia AGGiornamento.doc".
Buon lavoro, Carlo


________
io ho Windows 98, però uso scrivere:
     .FileName = "image" & "*"
e così funziona!
anzi.... ho inserito una casella di testo dove se mi interessa, scrivo il
nome o parte del nome del file e quindi:
     .FileName = me.casellatesto & "*"
ciao Riccardo

 ha scritto nel messaggio
news:ghB46.229868$hk4.10...@news.infostrada.it...

Ciao Carlo,
Grazie per il tuo interessamento.
Innanzitutto una precisazione: con
.FileName = "image*"
(che è quanto scritto sull'help) non mi funziona neppure nel PC
dell'ufficio; in questo PC, perché le cose funzionino, devo scrivere:
.FileName = "image*.*"
visto che tutti file hanno un extention.
Se poi scrivo:
.FileName = "image"
(senza asrerischi) come ho già detto nel mio precedente messaggio, non ho
alcun errore ma non viene riconosciuto alcun file, quindi mi compare la
msgbox con il messaggio "Nessun file trovato" ( e questo sia sul PC
dell'ufficio che sul nuovo PC di casa).
Per ottenere quello che tu mi hai scritto, nel PC dell'ufficio, debbo
scrivere:
.FileName = "*image*.*"
che però sul PC di casa mi dà errore.
Comunque questa sera, sul PC di casa, metterò anche il riferimento alla
libreria Microsoft Word 8.0 Object Library, riproverò e ti farò sapere.


 ha scritto nel messaggio
news:92unpc$pck$1...@news.panservice.it...

Grazie Riccardo,
come ho detto anche a Carlo, anche sul PC dell'ufficio, così come dice
l'help non funziona; per ottenere risultati su questo PC debbo scrivere:
    .FileName = "image*.*"
ma sul nuovo PC di casa mi dà errore (come ripeto, basta che nella stringa
compare il carattere asterisco, mi si genera l'errore).
Se scrivo:
.FileName = "image" & "*"
come da te consigliato non mi seleziona alcun file, mentre va bene, sul PC
dell'ufficio, se scrivo:
.FileName = "image" & "*.*"
sul PC di casa proverò e ti faccio sapere; mi piacerebbe sapere perché
invece a te funziona.
La stessa cosa succede se scrivo:
.FileName = me.casellatesto & "*"
e anche qui mi piacerebbe sapere perché a te funziona e a me non funziona in
nessuno dei tre PC; ripeto che mi funziona sul PC dell'ufficio (e forse sul
vecchio PC di casa: Windows 98) se scrivo:
.FileName = me.casellatesto & "*.*"
Ciao


 ha scritto nel messaggio
news:X7u46.229054$hk4.10...@news.infostrada.it...

Dalle mie parti si dice: "E' passato l'angelo e ha detto amen..."; tanto per
dire che quello che non doveva succedere è successo.
Comunque, per la cronaca su NT Server la routine (provata in tutte le salse)
funziona. Stasera provo sul mio a casa...
Ciao.


Ciao Sergio,
ti ringrazio per la tua premura.
Penso che la cosa migliore è provare su un PC che lavora in ambiente Windows
Me, proprio per verificare se l'errore è generato da queswto SO.
Aspetto tue notizie.
Ciao
PS Non crearti problemi, sembrerebbe che tutto il resto funzioni (almeno
spero) ;-)


______
Io ho provato solo su Windows 98.
per l'esattezza ho:
Una casella di testo dove seleziono la directory, una casella di testo dove
seleziono il nome del file(NomeFile) e una casella combinata dove seleziono
l'estensione (TipoFile) e scrivo così
        .FileName = Me.nomefile & "*." & Me.tipofile
funziona perfettamente!
ho provato ad inserire "image*" e non funziona neanche a me
con "image*.*" invece si!
Questo per Windows 98. Per il tuo S.O. non saprei.
Prova così. Dovrebbe funzionare perchè gli passi sia il nome, il "." e
l'estensione
ciao Riccardo

 ha scritto nel messaggio
news:92vbv0$vci$1...@news.panservice.it...

Penso che così:
.FileName = Me.nomefile & "." & Me.tipofile
funzioni sicuramente, visto che funziona con:
.FileName = "Image003.jpg"
Solamente che io dovrei selezionare tutti i file contenuti in un folder e
pertanto dovrei scrivere:
.FileName = "*.*"
come fra l'altro si trova scritto nel database Viewer di Silvio Savoldi,
scaricabile dal Sito Comune e che funziona benissimo nel mio PC dell'ufficio
e funzionava nel mio vecchio PC di casa, ma sul nuovo PC nisba.
ciao


Errore di run-time '5': Chiamata di routine o argomento non validi
Facci sapere come si comporta inserendo nei riferimenti la libreria di oggetti Office 8.0.
Ciao, warp

 Roberto
############
Ciao Roberto,
quando devo selezionare tutto, faccio:
.FileName = Me.nomefile & "*." & Me.tipofile
dove nella casella Nomefile non inserisco nulla....quindi c'è l'* ed il "."
e nel Tipofile inserisco *
quindi viene passata questa stringa:
.FileName = Me.nomefile (Nullo) "*." & Me.tipofile ("*")
e quindi Filename è = "*.*" cioè quello che vuoi fare tu
penso che così tu possa risolvere.
ciao Riccardo


Ciao warp,
appena arrivo a casa provo e faccio sapere
Grazie!


 ha scritto nel messaggio
news:92vk6v$295$1...@news.panservice.it...

Ciao Riccardo,
ieri sera ho anche provato a fare:
Dim Pippo As String
Pippo "*.*"
........
.FleName = Pippo
e l'errore viene fuori lo stesso; ovvero l'errore non si genera se il valore
asterisco è contenuto nella frase, ma nel caso in cui comunque la stringa
contenga tale valore.
Comunque grazie, vedrò di fare altre prove e farò sapere.


Ci conto Roberto, CIAO!
warp

 ha scritto nel messaggio
news:92unka$8kn$1...@fe1.cs.interbusiness.it...

Ho appena inserito nei riferimenti anche la libreria di Office 8.0 e nulla è
cambiato.
Inoltre, come forse ha già letto, in un messaggio delle ore 21:54 del 3/1/01
(all'interno di un 3d iniziato alle 21:09 del 27/12/00 e che ha per oggetto
"Foto nelle maschere"), Massimo mi dice che riesce a far funzionare il
database Viewer di Silvio Savoldi in ambiente Windows Me; in quel database
c'è una routine di ricerca di file all'interno di un folder che contiene:
.FileName = "*.*"
Quindi sembrerebbe che non sia una bug di quel sistema operativo.
Mi auguro che tra tutti ci venga in mente qualcosa d'altro.
Ciao


Ho appena inserito anche il riferimento alla libreria Microsoft Word 8.0, ma
nulla è cambiato.
Ciao



Come forse hai già letto, in un messaggio delle ore 21:54 del 3/1/01
(all'interno di un 3d iniziato alle 21:09 del 27/12/00 e che ha per oggetto
"Foto nelle maschere"), Massimo mi dice che riesce a far funzionare il
database Viewer di Silvio Savoldi in ambiente Windows Me; in quel database
c'è una routine di ricerca di file all'interno di un folder che contiene:
.FileName = "*.*"
Quindi sembrerebbe che non sia una bug di quel sistema operativo.
Mi auguro che tra tutti ci venga in mente qualcosa d'altro.
Ciao
--



Ho provato a fare anche come dici tu ma l'errore persiste, inoltre sembra
che Windows Me non c'entri, Massimo con quel sistema operativo adopera il
database Viewer, scaricato dal Sito Comune, che contiene:
.FileName = "*.*"
Se ti venisse qualche altra idea.........
Ciao


 Roberto
__________
Mi dispiace roberto, ma penso allora di non saperti aiutare.
La procedura che utilizzo io, mi passa come stringa proprio "*.*" e funziona
perfettamente!
Così come dici di Massimo con il Viewer... e funziona.
Oramai non saprei proprio dirti quale sia il tuo problema. Passarre la
stringa "*.*" sembrerebbe la cosà più normale e sicura , ma se a te non
funziona, allora non sò proprio da cosa possa dipendere.
Se trovo qualcosa ti faccio sapere.
ciao Riccardo


Eureka!
Dovresti risolvere il problema impostando la proprietà .FileType =
msoFileTypeAllFiles e togliere l'asterisco;
quindi:
'---------------------------
Dim i As Integer, fs As Variant
Set fs = Application.FileSearch
With fs
     .LookIn = "C:\Documenti\Immagini PhotoWise\11 dicembre 2000"
    .FileType = msoFileTypeAllFiles
     .FileName = "image"
     If .Execute > 0 Then
         MsgBox "Trovati " & .FoundFiles.Count & " file"
         For i = 1 To .FoundFiles.Count
             MsgBox .FoundFiles(i)
         Next i
     Else
         MsgBox "Nessun file trovato"
     End If
End With
'---------------------------
Se anche così non funziona prova ad impostare anche .NewSearch che azzera le
precedenti impostazioni di ricerca;
quindi:
'---------------------------
Dim i As Integer, fs As Variant
Set fs = Application.FileSearch
With fs
    .NewSearch
     .LookIn = "C:\Documenti\Immagini PhotoWise\11 dicembre 2000"
    .FileType = msoFileTypeAllFiles
     .FileName = "image"
     If .Execute > 0 Then
         MsgBox "Trovati " & .FoundFiles.Count & " file"
         For i = 1 To .FoundFiles.Count
             MsgBox .FoundFiles(i)
         Next i
     Else
         MsgBox "Nessun file trovato"
     End If
End With
'---------------------------
Ciao.

 ha scritto nel messaggio
news:931ao4$iqa$1...@news.panservice.it...

Ti ringrazio ancora.
Nel frattempo ho trovato una soluzione che mi risolve gli attuali miei
problemi almeno al 95%; scrivendo:
.FileName = ".jpg"  (senza asterischi)
mi restituisce tutti i file presenti nel folder che hanno una extention jpg.


 ha scritto nel messaggio
news:931uj6$51a$1...@suite03.caspur.it...

Non so come ringraziarti.
Sono appena tornato a casa e dopo cena provo e ti faccio sapere; comunque
nel frattempo, come dicevo a Riccardo, scrivendo:
.FileName = ".jpg"
risolvo molti dei miei problemi: mi restituisce i nomi di tutti i file JPEG
contenuti nel folder.
A più tardi.



[CUT]

Grazie veramente tanto: funziona perfettamente: direi che è necessario
adoperare .NewSearch.
Per ottenere quello che ottenevo prima con .FileName = "*.*" è bene proprio
togliere .FileName = "image".
Ancora grazie infinite.
Ciao



Di nulla, mi ci rodeva proprio lasciarti nella cacca...
Ciao.