FileSearch et caractère générique

Résolu
gandalflegris007 Messages postés 211 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 11 juin 2007 - 4 août 2006 à 14:44
gandalflegris007 Messages postés 211 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 11 juin 2007 - 7 août 2006 à 10:30
Bonjour à tous,


je rencontre un soucis de portabilité d'une appli Access.

Je l'utilise sur 2 types de postes : 1 en NT, l'autre en XP.

Sur le poste en XP j'ai un soucis avec le comportement de la fonction
FileSearch de Access : dès que j'insert un caractère générique dans le
nom de fichier à rechercher (* ou ?) il me sort une erreur de type
"Argument ou appel de procédure incorrect".

Cette même fonction tourne bien sur le NT.

Sur le XP je suis en Access 2003, en 97 sur le NT.

Mais j'ai essayé en installant un Access97 en parallèle sur le XP et le problème reste entier.


> je suspecte donc un pb de version de dll sur lesquelles se
reposent les références mais je ne parviens pas identifier vraiment la
source du problème.


Merci donc à qui aurait une idée


Guich

6 réponses

gandalflegris007 Messages postés 211 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 11 juin 2007
7 août 2006 à 10:30
Salut Dolphin Boy et merci pour ton soutien.

Le code que tu m'as donné est le même que ce que j'ai déjà dans mon appli et ça plante toujours au même endroit : .Filename = ....

Puisque je ne parviens pas à trouver comment corriger l'appel de cette fonction, j'ai tout bonnement modifié le code, j'utilise désormais la fonction Dir qui, elle, ne pose pas de problème.
C'est quand même dommage de ne pas utiliser la fonction faite exprès, mais au moins ça fonctionne.

Le code utilisé est donc le suivant :

Dim Fichier As String

 

Fichier = Dir("C:\temp\toto*.*")
If Fichier = ""
Then
    MsgBox "Fichier non trouvé."
    Exit Sub
End If
Do While
Fichier <> ""
    MsgBox Fichier

 

    Fichier = Dir()
Loop

Merci encore pour ton soutien sur ce problème.
Guich
3
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
4 août 2006 à 14:59
Salut, as-tu essayé le caractère "%" (pourcentage) ?
0
gandalflegris007 Messages postés 211 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 11 juin 2007
4 août 2006 à 16:02
Bonjour Dolphin Boy,

avec le caractère % en fin de chaine, je n'ai plus d'erreur mais il ne trouve rien ==> il ne l'interprète pas comme un caractère générique.

Merci quand même.

Guich
0
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
4 août 2006 à 16:32
Chez moi, avec access97 j'ai essayé ça et ça fonctionne (avec une '*' :

Sub essai()
Dim i As Integer
With Application.FileSearch
.NewSearch
.LookIn = "c:\temp"
.Filename = "toto*"
.FileType = msoFileTypeAllFiles
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
MsgBox .FoundFiles(i)
Next i
Else
MsgBox "Fichier non trouvé."
End If
End With
End Sub

Pas pu tester avec access2003.
Tu as peut-être un problème de FileType ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gandalflegris007 Messages postés 211 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 11 juin 2007
4 août 2006 à 16:55
Re bonjour,

j'ai rajouté la specif du filetype et l'erreur est encore là ...

L'erreur se produit sur la ligne .FileName = "toto*".
Si je mets "toto.txt", ça passe, dès que j'insere un * ou un ?, ça plante !!!
Comme si Access n'interprétait pas le * ou ? comme il le doit
0
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
4 août 2006 à 18:26
Alors, je ne vois plus. Enlève le .filetype et code directement :
Sub essai()
Dim i As Integer
With Application.FileSearch
.NewSearch
.LookIn = "c:\temp"
.Filename = "toto*.*"
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
MsgBox .FoundFiles(i)
Next i
Else
MsgBox "Fichier non trouvé."
End If
End With
End Sub
0
Rejoignez-nous