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

IHM Discussion :

Scanner Document et garder son chemin dans une table


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut Scanner Document et garder son chemin dans une table
    Bonjour,
    Je souhaite un scanner un document dans un formulaire, le stock sur le réseau et garder le chemin dans un de mes champs d'une table.
    J'ai trouvé ça : http://www.logicielappui.com/access/AccXP_ImageScan.zip
    De Robert Simard.

    Mais lorsque je lance sa base, après avoir copié les fichiers converter.dll et Eztw32.dll dans le bon dossier. J'ai une erreur d'éxécution : Argument ou appel de Procédure incorrect.

    La ligne de code qui ne passe pas est la derniere du bout de code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Name = Space$(256)
        TWAIN_GetDefaultSourceName (Name)
        Name = Left(Name, InStr(Name, vbNullChar) - 1)
    Je suis assez perdu.
    Merci.

  2. #2
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Bjr

    Je n'ai pas réponse au problème.
    Mais c'est peut être plus simple avec la librairie WIA?
    http://silkyroad.developpez.com/VBA/...geAcquisition/

  3. #3
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut
    Bonjour,
    La solution que tu m'a proposé me parait interessante.

    Résolu :
    Seulement j'ai un problême au niveau de cette étape :

    La librairie Windows Image Acquisition possède son propre contrôle CommonDialog. Celui-ci est accessible en utilisant la fonction CreateObject où en ajoutant le contrôle "CommonDialog Class", disponible dans la liste des contrôles supplémentaires après l'installation de WIA.
    Sur Access je ne dispose même de liste des contrôles supplémentaires.(Access 2007)...

    Pourtant cette solution me parait vraiment bien.

    PS: J'ai bien téléchargé la librairie wia sur le site de microsoft, j'ai suivie les étapes de son installation et j'y ai fait references dans mon vba Access.
    Sur access 2003 je trouve aisément le controle avec la boite à outils.

    Merci.
    Non résolu :

    J'ai crée un controle image, lorsque j'utilise la propriété .picture. J'ai un message d'érreur qui me dit : Utilisation incorrecte de la propriété.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Image1.Picture = Img.FileData.Picture
    Et quand j'utilise la propriété .PictureSizeMode : Membre de méthode ou de données introuvable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image1.PictureSizeMode = fmPictureSizeModeZoom

  4. #4
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Bjr

    Les contrôles activex sont en bas à droite dans le groupe "contrôles" de l'onglet "Création" (c'est une petite croix rouge)

    Si tu veux utiliser un contrôle image, c'est possible mais les contrôles image d'access fonctionnent différemment.

    J'ai mis ici un code pour transformer l'objet Picture en PictureData :
    http://www.developpez.net/forums/d40...g/#post2453603

  5. #5
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut
    Merci, Helas,
    Nouveau petit souci.

    Message qui apparait lorsque ce code s'éxécute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set MonDevice = wiaCDiag.ShowSelectDevice
    Ou celui ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Img = wiaCDiag.ShowAcquireImage
    "No WIA Device Of The Selected Type is available"

    Pourtant lorsque je vais dans Panneau De Configuration/Scanneurs et appareils photo , je vois bien apparaitre mon scanneur Canon qui est connecté en USB.

    Vais-je devoir abandoner cette solution ?

  6. #6
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Probablement que le pilote du scanner utilise une interface TWAIN
    Il faudrait installer un pilote WIA pour utiliser cette librairie

  7. #7
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut
    Ok...
    J'ai l'impression que pour mon scanner il n'éxiste pas de pilote WIA :
    Canon DR-3080C II

    Car ISIS ce n'est pas la même chose que WIA ? ( C'est beau de rêver).

  8. #8
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Citation Envoyé par OCB37 Voir le message
    Ok...
    J'ai l'impression que pour mon scanner il n'éxiste pas de pilote WIA :
    Canon DR-3080C II

    Car ISIS ce n'est pas la même chose que WIA ? ( C'est beau de rêver).
    là je ne sais pas

    tu peux toujours essayer de lancer l'assistant XP (dans menu démarrer/accessoires) pour vérifier si le problème vient du code VBA ou pas (cet assistant est en fait ce qui devrait être lancé par la fonction ShowAcquireImage)

    après je n'ai plus d'idée

  9. #9
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut
    D'accord, Merci. En fait je suis sur que cela vient du pilote qui n'est pas WIA.
    Je suis donc reparti sur ma première solution, mais j'ai l'impression que j'ai un problème au niveau du dll Eztw32 car j'ai l'érreur suivante : Point d'entrée TWAIN_GetSourceList d'une dll introuvable dans EZTW32.DLL

    Merci.

  10. #10
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut
    Lorsque je lance l'application, un méssage d'arret apparait : Argument ou appel de procédure incorrect sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Name = Left(Name, InStr(Name, vbNullChar) - 1)
    Je ne peux pas résoudre ce probème moi même, car je ne comprend pas le code attribué autour de cette variable Name, du genre :

  11. #11
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut
    Bonjour,
    J'ai trouvé un scanner en wia donc j'ai suivi le tutorial cité au dessus.
    L'image se numérise mais elle ne s'affiche pas et je ne la retrouve pas ou je la sauvegarde. Voici le code que j'ai mis en place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton1_Click()
    Dim l As String
    Dim Img As ImageFile
        Set Img = wiaCDiag.ShowAcquireImage
        If Not Img Is Nothing Then
     
        Img.SaveFile ("V:\GestionOutillage\DocOutils\" & codeb.Value & "\" & nom.Value & "")
        Image1.PictureData = "V:\GestionOutillage\DocOutils\" & codeb.Value & "\" & nom.Value & ""
        End If
    End Sub
    Merci.

  12. #12
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    bjr,

    pour affecter un chemin de fichier à un contrôle image, c'est Picture au lieu de PictureData

  13. #13
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut
    Bonjour,
    Je te remerci de ta précision.
    Par contre l'image ne s'enregistre pas comme je le souhaite.
    La syntaxe est elle correcte?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            'Remplacement des / par un . dans mon champ date pour enregistrer l'image
            d = Replace(lbldatedoc.Value, "/", ".")
            L = ("V:\GestionOutillage\DocOutils\" & codeb.Value & "\" & typedoc.Value & d & ".jpg")
            ' Enregistrement de l'image
            Img.SaveFile (L)

  14. #14
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut
    Après une analyse plus poussée des besoins des utilisateurs, je viens de me rende compte que j'aimerai fonctionner de cette manière:
    1) Scan de l'image
    2) Mis en place de l'image dans mon formulaire
    3) Si clique sur bouton enregistrer : sauvegarde de l'image mis en place dans mon formulaire.

    Il faudrait donc que je scanne mon image et que je la bascule dans le champ image de mon formulaire donc avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Set Img = wiaCDiag.ShowAcquireImage
     
        If Not Img Is Nothing Then
        Set Image1.Picture = WIAtoAccess(Img.FileData.Picture)
    Il me reste donc à mettre en place l'étape 3 ?!
    Pour l'étape 3 :
    -Peut on sauvegarder l'image contenue dans mon champ image de mon formulaire?
    - Faudrait il que je déclare en public mon Img (WIA), pour pouvoir l'enregistrer après si l'utilisateur le souhaite ?

    En tous cas merci beaucoup de votre soutien/aide.

    Edit: Je ne comprend plus rien maintenant je lance le scan, je clique sur numériser et Img=Nothing, pourtant j'ai un document dans mon scanneur.

  15. #15
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut
    Bonjour, et desolé d'avance de faire vivre ce post tout seul.

    J'ai pas mal avancé, il reste une chose qui ne marche pas :
    Celle qui consiste a balancer l'image numérisée dans mon champ image de mon formulaire, j'ai utilisé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image1.PictureData = WIAtoAccess(Img.FileData.Picture)
    J'ai bien sur repris la fonction WiatoAccess dans un module.
    Mais rien ne s'affiche dans mon champ Image1.

    Sinon pour ceux que ca peut intéresser, je vous poste mes différentes fonctions :
    La premiere celle qui est sur un bouton Scanner:
    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
    ' Acquisition d'une image
    '
    Private Sub CommandButton1_Click()
     
        Image1.Picture = ""
        Set Img = wiaCDiag.ShowAcquireImage
        Dim L As String
        Dim d As String
        If Not Img Is Nothing Then
            'Remplacement des / par un . dans mon champ date pour enregistrer l'image
            d = Replace(lbldatedoc.Value, "/", ".")
            L = ("V:\GestionOutillage\DocOutils\" & codeb.Value & "\" & typedoc.Value & d & ".jpg")
            chemin.Value = L
            ' Affichage de l'image dans le formulaire
            Image1.PictureData = WIAtoAccess(Img.FileData.Picture)
     
        End If
    A noter que j'ai déclarer ma variable Img en public pour pouvoir la sauvegarder si l'utilisateur clique sur le bouton enregistrer dont voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    If Not IsNull(codeb.Value) Then
        If Not IsNull(chemin.Value) Then
            If Not IsNull(typedoc.Value) Then
                If Not RepertoireExiste("V:\GestionOutillage\DocOutils\" & codeb.Value) Then
                    MkDir ("V:\GestionOutillage\DocOutils\" & codeb.Value)
                End If
                    Img.SaveFile (chemin.Value)
                    DoCmd.RunSQL "INSERT INTO DOCSSCAN VALUES ('" & codeb.Value & "',#" & lbldatedoc.Value & "#,'" & lblheuredoc.Value & "','" & typedoc.Value & "','" & obser.Value & "','" & chemin.Value & "' )"
                Else
                    MsgBox ("Assurer vous d'avoir scanné une image, puis recommencez")
            End If
        End If
    End If
    La fonction RepertoireExiste vérifie si le repertoire de l'outils (codeb) existe deja ou non, voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function RepertoireExiste(chemin As String) As Boolean
    On Error Resume Next
    RepertoireExiste = GetAttr(chemin) And vbDirectory
    End Function
    Tout se passe bien, l'image s'enregistre bien ou je le souhaite. Seul problème l'affichage de mon image lors du scan. Cependant je crois avoir remarqué que l'image s'affiche quand j'ouvre mon formulaire ultérieurement.

    PS: J'espere que j'ai bien fait de poster tout mon code.


    Sinon mon contrôle Wia est en public, je pense qu'il faudrait que je l'initialise a rien lors de la fermeture de mon formulaire mais je ne trouve pas le code adéquate.

  16. #16
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Citation Envoyé par OCB37 Voir le message
    J'ai pas mal avancé, il reste une chose qui ne marche pas :
    Celle qui consiste a balancer l'image numérisée dans mon champ image de mon formulaire, j'ai utilisé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image1.PictureData = WIAtoAccess(Img.FileData.Picture)
    J'ai bien sur repris la fonction WiatoAccess dans un module.
    Mais rien ne s'affiche dans mon champ Image1.
    pas facile à voir comme ça où ça plante, est-ce ma fonction WAItoAccess qui bogue, je ne vois pas?
    peut-être qu'un Me.Repaint derrière suffirait à afficher l'image?

  17. #17
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut
    Bonjour,
    Merci Arkham46, la méthode:
    Affiche l'image.

    Cependant, je me suis rendu compte d'une nouvelle chose, les images s'enregistrent sur le serveur est ont une taille d'environ 30 Mo
    Je voudrais donc savoir si avant d'enregistrer l'image je peux la redimensionner donc en touchant à ma variable Img qui est de type ImageFile.
    Ou le cas échéant, Enregistrer mon image sur le serveur puis la redimensionner avec du code vba.

    Je vais chercher des solutions, si quelqu'un peut me conseiller, je le remercie encore une fois d'avance.

  18. #18
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Citation Envoyé par OCB37 Voir le message
    Je voudrais donc savoir si avant d'enregistrer l'image je peux la redimensionner donc en touchant à ma variable Img qui est de type ImageFile.
    toujours dans le même tuto :
    http://silkyroad.developpez.com/VBA/...ition/#LII-A-3

    la variable Img étant un objet ImageFile, ça devrait être faisable en appliquant un filtre comme indiqué dans le tuto

  19. #19
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut
    Oui j'ai vu.
    Mais en fait les dimensions sont bien, le souci c'est l'enregistrement de l'image en .BMP . Je vais donc aller voir sur le tuto, apparement il y aurait une fonction permettant de convertir.
    Merci.

  20. #20
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut
    J'ai essayé d'appliqué, la méthode qui explique comment convertir sur le tuto.
    Seulement cela n'a pas l'air de fonctionner, car quand j'enregistre l'image je ne la retrouve pas dans mon repertoire alors que quand je n'applique pas le filtre cela fonctionne, voici le code que j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Set ip = CreateObject("WIA.ImageProcess")
                        ip.Filters(1).Add ip.FilterInfos("Convert").FilterID
                        ip.Filters(1).Properties("FormatID").Value = wiaFormatJPEG
                        Set img = ip.Apply(img)
    A noter que ma variable "img" est déclarée en public.

    D'ailleurs je rencontre tjrs des petits problèmes pour l'affichage de mon image dans le formulaire. Lorsque je scanne une première fois l'image cela fonctionne mais si je veux re-scanner sans fermer le formulaire, cela m'affiche mon contrôle vide.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/08/2008, 14h55
  2. [MySQL] Recherche de chemins dans une table
    Par Diafwl dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 31/01/2006, 17h16
  3. Trouver son chemin dans un labyrinthe
    Par APoLLoN1234 dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 03/11/2005, 22h34
  4. Comment importer un document CSV dans une table MySql ?
    Par magic8392 dans le forum Requêtes
    Réponses: 6
    Dernier message: 04/02/2005, 11h03
  5. Créer un champ contenant un son wav dans une base Paradox
    Par Grandad95 dans le forum Bases de données
    Réponses: 4
    Dernier message: 21/07/2004, 17h00

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