Fichier intriuvable

Résolu
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

2 réponses

  1. 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
    1. 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