Fichier intriuvable

Résolu
Lenouveauapprenti Messages postés 306 Date d'inscription   Statut Membre Dernière intervention   -  
Lenouveauapprenti Messages postés 306 Date d'inscription   Statut Membre Dernière intervention   - 19 sept. 2021 à 16:03
Bonjour,

Infos:
L'environnement de travail est : VB6 avec Access

Circonstances:
Erreur de code permettant de supprimer le fichier dans le dossier Photos, sans que le chemin vers le fichier, enregistré dans la BD, ne serait pas supprimé (erreur corrigé après)

Problème:
Lors de l'exécution du code du formatage de la BD, l'application, en suivant le chemin, ne trouve pas le fichier déjà supprimé.

Résultat:
L'application s'arrête en affichant le message : Erreur 53 , Fichier introuvable

Demande:
M'orienter, ou me donner un code ou astuce pour ignorer cette erreur


Code écris est comme suit:

Dim N, PN, DN As Integer
Dim Ste, TxtPhoto As String


SQLs = "select * from TableInfos where (Societe='" & CStr(VarSociete) & "')" & "order by NOrdre asc"

If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic

If RS![NOrdre] <> 0 Then
RS.MoveFirst
PN = RS![NOrdre]

RS.MoveLast
DN = RS![NOrdre]
End If
RS.Close

For N = PN To DN + 1 Step 1

If N > DN Then
Exit For
Exit Sub
End If

SQLs = "select * from TableInfos where (NOrdre=" & CInt(N) & ")"

If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic

If RS.EOF Then
GoTo AuSuivant:
Exit Sub
ElseIf RS![NOrdre] = N Then
Ste = RS![Societe]

    If Ste <> VarSociete Then
    GoTo Pass:
    Exit Sub
    End If
    
If RS![Photo] <> "" Then
TxtPhoto = RS![Photo]
GoTo Pass1:
Exit Sub
ElseIf RS![Photo] = "" Then
GoTo Pass2:
Exit Sub
End If

End If
RS.Close


Pass1:


On Error GoTo nnn:

If TxtPhoto = "C:\InstMezAppSSalaires\MezAppSSalaires\Photos\homme.jpg" Then
GoTo Pass3:
Exit Sub
ElseIf TxtPhoto <> "C:\InstMezAppSSalaires\MezAppSSalaires\Photos\homme.jpg" Then
Kill TxtPhoto
GoTo Pass4:
Exit Sub
End If

nnn:




Pass4:
Pass3:
Pass2:
Pass:
AuSuivant:
Next N


Merci d'avance pour votre aide
A voir également:

2 réponses

f894009 Messages postés 17268 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Vous devriez rechercher le fichier avant de faire quoi que ce soit s'il n'est pas present. Ce qui revient a faire un traitement d'erreur sans erreur
0
Lenouveauapprenti Messages postés 306 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonjour
Effectivement c'est ce que je voulais, mais je ne savais pas comment le faire.
En cherchant, j'ai trouvé l'astuce, et a bien marché
Le code ajouté est comme suit :


Dim FileToCheck 
Dim FileExists as Boolean
Dim DirectoryFile as String

FileToCheck=TxtPhoto
DirectoryFile=Dir(FileToCheck)

If DirectoryFile="" then
FileExists=False
Else
FileExists=True
End if

If FileExists=False then
Goto Ignore:
Exit Sub
End if

if TxtPhoto="chemin" then
Goto Pass:
Exit Sub
ElseIf TxtPhoto<>"chemin" then
Kill TxtPhoto
Goto Pass1:
Exist Sub
End if

Ignore:
Pass1:
Pass:



Seulement il me reste de savoir qu'il est le type de :

FileToCheck

Car dans mes recherches j'ai trouvé qu'il a été déclaré comme suit :

Dim FileToCheck as corde

En executant la procedure , l'application n'a pas reconnu ce type de déclaration, et m'a renvoyé un message d'erreur, mais en laissant la declation ouverte, comme j'ai fais en haut, l'éxecution a été faite sans problème

Merci de m'éclairer sur le type de déclaration adéquate
0