IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

WIA , gestion d'erreur


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Par défaut WIA , gestion d'erreur
    Bonjour a tous, je travaille sur access 97 et je me sert depuis peu de vba.
    J'ai du realiser une interface qui permet de scanner un document, lui attribuer un nom auto, et de le sauvegarder à un endroit précis.

    J'ai découvert la bibliothèque WIAaut.dll (Windows Image Acquisition) qui m'a permis d'avoir des résultats assez rapidement.

    Voici le code utilisé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Dim commondialog1 As Object
    Dim img As ImageFile
     
    Set commondialog1 = CreateObject("wia.commondialog")
    Set img = commondialog1.ShowAcquireImage
     
    MyVar = "ImgScan" & i & ".jpg" 
    EndPath = dirpath & "\" & MyVar 'chemin du dossier, i=1
     
        Do While dir$(EndPath) <> vbNullString
        MyVar = "ImgScan" & i + 1 & ".jpg"
        EndPath = dirpath & "\" & MyVar
        Loop
     
        img.SaveFile (EndPath)
    Voila, c'est assez brut comme code, je l'ai récupéré sur le net!

    J'aimerais savoir comment integrer une gestion d'erreur: si l'utilisateur décide d'annuler le scan, comment faire pour interrompre le reste de la procédure

    J'espere avoir été clair, sinon n'hésitez pas a poser des questions!
    Merci d'avance,

    Ced911

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Par défaut
    C'est bon! j'ai trouvé pour la gestion d'erreur
    pour ceux que ca interesse:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Dim commondialog1 As Object
    Dim img As ImageFile
     
    Set commondialog1 = CreateObject("wia.commondialog")
    Set img = commondialog1.ShowAcquireImage
     
    MyVar = "ImgScan" & i & ".jpg" 
    EndPath = dirpath & "\" & MyVar 'chemin du dossier, i=1
     
        Do While dir$(EndPath) <> vbNullString
        MyVar = "ImgScan" & i + 1 & ".jpg"
        EndPath = dirpath & "\" & MyVar
        Loop
    'Abort handler
    If img Is Nothing Then
    MsgBox "Action aborted"
    Else   
        img.SaveFile (EndPath)
    End If
    J'ai néanmoins des soucis avec la boucle qui nomme les fichiers...si vous avez une alternative plus "propre" je suis interessé!

    Ced911

  3. #3
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Par défaut
    Bonjour,
    Peux-tu préciser le type de ton souci ?
    Si j'ai bien compris ton code (plein d'astuces !), tu veux numéroter tes images en incrémentant par pas de 1, en choisissant le 1er trou éventuellement libre et à défaut, le nombre suivant le dernier.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Par défaut
    Oui tu as compris, il s'agit donc de ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    MyVar = "ImgScan" & i & ".jpg" 
    EndPath = dirpath & "\" & MyVar 'chemin du dossier, i=1
     
        Do While dir$(EndPath) <> vbNullString
        MyVar = "ImgScan" & i + 1 & ".jpg"
        EndPath = dirpath & "\" & MyVar
        Loop
    et je veux que les fichiers portent les noms ImgScan1, ImgScan2, ImgScan3 ect.
    J'ai donc défini i=1 avant de rentrer dans la boucle,
    si le fichier existe deja, j'incremente : i=i+1 et ce jusqu'a que : dir$(EndPath) = vbNullString

    Merci pour ton interet,
    Ced911

  5. #5
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Par défaut
    Ok, je trouve cela fort astucieux.
    Mais tu parlais de soucis
    J'ai néanmoins des soucis avec la boucle qui nomme les fichiers...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Par défaut
    oui le soucis c'est justement que la procedure ne sort plus de la boucle Do While et Access plante...


    je viens de mettre un "MsgBox EndPath" juste avant le Loop, et j'ai constaté qu'il m'affichait sans fin le EndPath avec i=2
    Il fait donc l'incrementation une fois (comme le ImgScan1 existe déjà) mais ne sort pas de ma boucle.

    J'ai été clair cette fois?

Discussions similaires

  1. gestion d'erreur et de transactions....
    Par Dge dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 08/02/2006, 22h20
  2. [Struts-Validator] Gestion d'erreurs
    Par sylvain_neus dans le forum Struts 1
    Réponses: 14
    Dernier message: 09/04/2004, 15h15
  3. [XSLT]Est ce qu'il y'a la gestion des erreur en xslt ?
    Par miloud dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/02/2004, 17h19
  4. [LG]tests pour la gestion d'erreur
    Par le 27 dans le forum Langage
    Réponses: 3
    Dernier message: 22/12/2003, 20h44
  5. [LG]gestion des erreurs
    Par frontin dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2003, 22h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo