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 :

VBA et positionnement dans un formulaire


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Par défaut VBA et positionnement dans un formulaire
    Bonjour
    je voudrai positionner mon curseur dans un des champs de texte de mon formulaire. je m'explique, lorsqu'un utilisateur entre une valeur dans un champ ici Preavis et que cette valeur n'est pas bonne alors j'envoie un message d'erreur avec une message box et l'élément qui est selectionne apres que j'ai mi ma message box est un autre champ texte. comme faire pour faire revenir automatiquement la saisie dans le champs texte de Preavis

  2. #2
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Bonjour,

    Domi2

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Par défaut suite
    ça ne marche pas, voici le code de la procédure associé au champ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub nPreavis_Exit(Cancel As Integer)
         If (nDureContrat.Value - nPreavis.Value >= 1) Then
            dDateLet.Value = DateAdd("m", -nPreavis.Value, dDateFin.Value)
        Else
            MsgBox ("Preavis trop grand par rapport à la durée du contrat")
            Me.nPreavis.SetFocus
            nPreavis.Value = 0
     
        End If
    End Sub

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Par défaut solution de bourin
    voici une solution de bourin mais elle est vraiment pas élégante, et vu que ce n'est pas pour moi j'aimerai faire plus joli :
    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
     
    Private Sub nPreavis_Exit(Cancel As Integer)
        Dim valeur As Integer
     
        If (nDureContrat.Value - nPreavis.Value >= 1) Then
            dDateLet.Value = DateAdd("m", -nPreavis.Value, dDateFin.Value)
        Else
            MsgBox ("Preavis trop grand par rapport à la durée du contrat")
            Me.nPreavis.SetFocus
    ask:     valeur = InputBox("Entrez une valeur correcte :", "Préavis")
            While (nDureContrat.Value - valeur < 1)
                GoTo ask
            Wend
     
            nPreavis.Value = valeur
            dDateLet.Value = DateAdd("m", -nPreavis.Value, dDateFin.Value)
        End If
    End Sub
    si quelqu'un a mieux
    (version office 2003)

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 238
    Par défaut
    Bonjour,

    Je crois que la solution est d'envoyer d'abord le focus sur un autre champ (l'idéal est un champ caché si tu en as un) puis de le renvoyer dans le champ souhaité.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.AutreChamp.SetFocus
    Me.nPreavis.SetFocus
    Cela se passe très vite et si on passe par un champ caché l'oeil ne voit rien.

    Bonne journée.

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Par défaut Well done
    ça marche en selectionnant d'abord un autre champ et en remettant celui que l'on veut. merci beaucoup

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

Discussions similaires

  1. [VBA-E] positionnement dans une feuille excel
    Par fast&furious dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/01/2007, 12h59
  2. [VBA-E] Positionnement dans une feuille
    Par GuyRo dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 02/01/2007, 12h22
  3. Réponses: 1
    Dernier message: 04/04/2006, 14h50
  4. Réponses: 1
    Dernier message: 20/03/2006, 13h30
  5. [VBA-O]Calendrier dans un formulaire outlook
    Par imhotep_zr7s dans le forum VBA Outlook
    Réponses: 4
    Dernier message: 09/02/2006, 21h25

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