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   -
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. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
  2. 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