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 :

Détecter la présence d'un fichier [URL] dans un formulaire en mode continu


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 506
    Par défaut Détecter la présence d'un fichier [URL] dans un formulaire en mode continu
    Bonjour,

    J'ai un formulaire en mode continu... qui contient un champ [URL] qui pointe vers un fichier quelconque. Exemple : C:\Users\Propriétaire\Pictures\Images\vacance.jpg

    J'ai dans mon formulaire deux images [IMAGE01] : un point rouge et [IMAGE02] : un point vert

    J'aimerais qu'à chaque ligne contenant un enregistrement, donc un lien dans le champ [URL], il y ai un test de validation, si le lien est valide le point vert s'affiche autrement c'est le point rouge.

    Pourriez-vous m'aider, car je n'ai aucune idée du code à créer.

    Merci d'avance :-)

  2. #2
    Membre Expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 887
    Par défaut
    Bonjour Crachover,

    Vous avez ICI les explications pour insérer une image dans un formulaire continu.

    Pour correspondre à votre demande, vous n'avez qu'a créer une requête pour alimenter votre formulaire avec un champ supplémentaire nommé "Photos" comme ceci (je prend l'exemple de Morgan BILLY) et adapter à vos besoins:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT tblEmployes.*, IIf(IsNull([LeChampURL]),"C:\...\IMAGE01","C:\...IMAGE02") AS Photos FROM tblEmployes;
    Bonne journée

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2009
    Messages : 394
    Par défaut
    Bonjour et merci pour votre réponse, mais à mon avis je me suis mal expliqué :-)

    Le problème n'est pas qu'il existe ou pas un lien, c'est qu'il soit valide, qu'il existe encore

    Exemple :

    Lors de la création du lien, C:\\....\Photos\doc.pdf

    Après cela, un jour... le fichier doc.pdf est modifié en docs.pdf ou effacé...

    J'aimerais un test sur le lien dans mon formulaire... et rouge.visible = True : vert.visible = False...

    Bonne journée :-)

  4. #4
    Membre Expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 887
    Par défaut
    Bonjoour CrasherSEP,

    En effet ce n'est pas la même chose. Il existe un moyen simple de vérifier si un fichier existe, c'est la méthode "FileExists " du "Scripting.FileSystemObject". Vous pourriez remplacer le test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IIf(IsNull([LeChampURL])
    par une fonction qui retourne vrai/faux si le fichier existe. Dans un module standard:
    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
    21
    Option Compare Database
    Option Explicit
     
    Public Function LienExiste(ByVal sChemin As String) As Boolean
    On Error GoTo gestion_err
     
    Dim oFSO                    As Object
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
     
    If oFSO.FileExists(sChemin) Then LienExiste = True
     
    Sortie:
    On Error Resume Next
        Set oFSO = Nothing
        Exit Function
     
    gestion_err:
        MsgBox "Erreur dans la procédure!" & Chr(13) & "Erreur #" & err.Number & Chr(13) & err.Description
        Resume Sortie
    End Function
    Et dans la requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IIf(LienExiste ([LeChampURL]),"C:\...\IMAGE01","C:\...IMAGE02")
    Ici je suppose que le champ [LeChampURL] n'est jamais vide ou null, ce qui provoquerait une erreur.

    Bonne journée

  5. #5
    Membre Expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 887
    Par défaut
    Bonjour Crachover,

    J'ai oublié de vous mettre le lien d'un très bon tutoriel pour la manipulation des fichiers en VBA, ICI vous aurez toutes les explications nécessaires.

    Bonne journée

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2009
    Messages : 394
    Par défaut
    Bonjour,

    Ne fonctionne pas... :-/
    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
    21
    22
    23
    24
    Function LienExiste(ByVal sChemin As String) As Boolean
    On Error GoTo gestion_err
     
    Dim oFSO As Object
     
    sChemin = Me.URL.Value
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
     
    If oFSO.FileExists(sChemin) Then LienExiste = True
     
    Sortie:
    On Error Resume Next
        Set oFSO = Nothing
        Exit Function
     
    gestion_err:
        MsgBox "Erreur dans la procédure!" & Chr(13) & "Erreur #" & Err.Number & Chr(13) & Err.Description
        Resume Sortie
    End Function
     
    Private Sub Form_Load()
    If LienExiste = True Then Me.Image189.Visible = True: Me.Image190.Visible = False Else Me.Image189.Visible = False: Me.Image190.Visible = True
    End Sub

Discussions similaires

  1. [AC-2010] Affichage dans un formulaire en mode continu
    Par vittirivizzik dans le forum VBA Access
    Réponses: 7
    Dernier message: 13/08/2012, 09h45
  2. [AC-2000] Lier des images dans un formulaire en mode continu
    Par berthold67 dans le forum Access
    Réponses: 2
    Dernier message: 17/11/2011, 21h17
  3. Réponses: 4
    Dernier message: 28/07/2010, 16h59
  4. Réponses: 4
    Dernier message: 11/01/2008, 10h00
  5. Réponses: 5
    Dernier message: 22/01/2007, 13h40

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