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 :

Vérification de l'existence d'une valeur dans le nom d'un dossier [AC-2013]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Par défaut Vérification de l'existence d'une valeur dans le nom d'un dossier
    Bonjour à toutes et tous et... Bonne ANNEE,

    Voilà mon soucis et merci par avance de votre aide:

    J'ai un formulaire qui est basé sur une requête. Lors de la fermeture du formulaire et s'il y a eu un nouvel enregistrement ou s'il y a eu modification des champs, le code vérifie si le dossier existe. Si oui, alors il ferme le formulaire sinon il crée le dossier. Le répertoire est créé via 3 champ. Le premier avec le Nom du membre, le 2ème avec le Prenom du membre et le dernier est un concatenation du ID dossier et date d'inscription dossier.
    Ex.: crée le dossier: c:\Documents\Toto Fenouille 345_22.03.2014. Toto=Nom du membre, Fenouille = Prenom du membre et le chiffre est la concatenation du ID dossier et date. Jusque là pas de problème.

    Mon souci est que si l'utilisateur modifie le nom du membre (si c'est une femme et qu'elle se marie ou que le nom ou prenom de famille a été inséré faux) d'un formulaire existant, access va me créer un nouveau dossier. Ce que je ne veux pas. Les champs qui ne peuvent-être modifiés sont l'ID et la date (le champ concatené qui termine le nom du dossier). J'aurais pu effectivement créer le nom du dossier seulement avec l'ID et la date, mais mes utilisateurs du programme ne veulent pas se retrouver avec des dossiers nommés seulement avec des chiffres...

    Ma question:
    comment demander en VBA de comparer la partie du nom du dossier, partant de la droite jusqu'à un "_", si elle correspond déjà au champ concaténé.

    Merci encore pour votre aide précieuse. (j'ai essayé de chercher dans le forum quelques choses du genre, sans vraiment trouver mon bonheur).

  2. #2
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Par défaut Erreur de ma part
    Dsl,

    l'exemple, dans ma demande, du dossier créé est erroné, c'est plutôt ToTo Fenouille_345 22.03.2014. Voilà pourquoi chercher depuis la droite le caractère "_" :

    Voilà ce que j'ai déjà essayé comme code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Dir(Right([strDossier], InStr(1, [strDossier], "_") - 1), vbDirectory) = Me.NCompletDossier Then
        DoCmd.Close acForm, "Frm_Dossier"   'ferme le formulaire dossier
        DoCmd.OpenForm "Frm_autoexec"       'ouvre le formulaire autoexec


    MERCI !

  3. #3
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 960
    Par défaut
    Bonsoir,
    il faut d'abord récupérer le nom de dossier et ensuite comparer. Essaie comme çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim strTrouveDossier As String
    strTrouveDossier = Dir([strDossier], vbDirectory)
     
    If Mid([strTrouveDossier], InStr(1, [strTrouveDossier], "_") + 1) = NCompletDossier Then
    DoCmd.Close acForm, "Frm_Dossier" 'ferme le formulaire dossier
    DoCmd.OpenForm "Frm_autoexec" 'ouvre le formulaire autoexec
    End If

  4. #4
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Par défaut
    Merci pour ta réponse aussi rapide, j'essaie tout de suite.

  5. #5
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Par défaut Bien vu
    Ta réponse fonctionne à merveille, j'avais effectivement cru que le "Strdossier" = le chemin complet suffisait. Merci pour ton aide et souhaite à toi ainsi qu'à toute l'équipe une Année remplie de code.

    J'inscris ce poste comme clos.

  6. #6
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 960
    Par défaut
    Ok, merci.
    Encore une précision : il faut tester si strTrouveDossier est <> "" avant de faire le Mid()
    Bonne soirée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Vérification de l'existence d'une valeur dans une plage
    Par bartimeus35 dans le forum Excel
    Réponses: 2
    Dernier message: 24/06/2012, 15h44
  2. Vérification de l'existence d'une url dans la BDD en langage JAVA
    Par ohhh.gringo dans le forum Autres langages pour le Web
    Réponses: 1
    Dernier message: 15/05/2007, 17h37
  3. [MySQL] Existance d'une valeur dans une table.
    Par méphistopheles dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/12/2006, 10h43
  4. Réponses: 2
    Dernier message: 08/12/2005, 14h41
  5. Test d'existence d'une valeur dans une table
    Par dleu dans le forum Bases de données
    Réponses: 9
    Dernier message: 29/12/2004, 10h38

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