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 :

Formulaire ayant même fct° qu'"InputBox" pour retour valeur dans un formulaire actif


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 28
    Points : 13
    Points
    13
    Par défaut Formulaire ayant même fct° qu'"InputBox" pour retour valeur dans un formulaire actif
    Bonsoir,

    Encore à l'état larvaire sur VBA, je m'essaie actuellement sur l'évènement suivant et malgré plusieurs heures de recherche je n'ai toujours pas trouvé !

    Voici ce que j'essaie de faire :

    Après la mise à jour de la valeur d'un contrôle du formulaire en cours, une procédure se lance uniquement si la valeur de ce dernier est strictement supérieure à 0. Une boite de dialogue alors apparait obligeant la saisie obligatoire d'un commentaire (texte, 255 caractères), dont la valeur ira se loger dans le champ correspondant du formulaire principal. Cela parait absurde mais je n'ai plus aucune place dispo. sur le formulaire et il s'agit de commentaires à saisir...et la palabre ça prend trop de place

    J'ai bien trouvé une possibilité avec InputBox sauf que c'est moins conviviale qu'un formulaire "sur mesure", pas de place pour visualiser un texte d'un max de 255 c. :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub PointsExceptionnelsCE_()
    Dim ComCE As String
        If Me![PointsExceptionnelsCE].Value > 0 Then
        ComCE = inputbox("Vous venez d'attribuer des points exceptionnels,saisissez votre commentaire : ", "ATTENTION ! SAISIE OBLIGATOIRE !")
        Me![CommentairesPointsExcep] = ComCE
    End If
    End Sub
    Je me suis également lancer sur une autre mais qui me génère des erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub PointsExceptionnelsCE_AfterUpdate()
    Dim stFormAttrib As String
    stFormAttrib = "ATTRIBUTIONS POINTS EXCEPTIONNELS"
    sttxtComExCE = "ComExCE"
        If Me![PointsExceptionnelsCE].Value > 0 Then
        DoCmd.OpenForm stFormAttrib, , , , , acDialog
        ??????????
    End If
    End Sub
    Je n'ai pas encore réfléchi à la meilleure façon de visualiser ces commentaires une fois saisis...

    Quelqu'un aurait-il la bonté de bien vouloir m'aider ?

    Votre Obligée

  2. #2
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour et bienvenue,

    La zone de texte que tu dois saisir si ta valeur de champ est > 0 : ne pourrait-elle pas être un champ Mémo ?

    Auquel cas, rien ne t'empêche de dessiner sur ton formulaire un tout peti champ Mémo que tu ouvres en faisant Shift-F2 (ou en faisant un double clic en ayant programmé un Sendkeys).

    Après, pour vérifier l'obligation de saisir une info si champ > 0 , tu le fais avant mise à jour de l'enregistrement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_BeforeUpdate(Cancel As Integer)
        If Me![PointsExceptionnelsCE].Value > 0 And Len(Me![ChampMemo]) = 0 Then
            Cancel = True
            MsgBox "Andouille, il faut saisir une info !", vbExclamation + vbOKOnly, "Politesse"
            Me.[ChampMemo].SetFocus
        End If
    End Sub
    A+
    Gabout

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 28
    Points : 13
    Points
    13
    Par défaut
    Bonsoir ,

    Merci de votre réponse si rapide c'est formidable

    L'idée proposée est ingénieuse et je vais me pencher sur elle simplement voilà j'ai Vista et lorsque je me suis tenté avec un SendKeys cela m'a précédemment généré " ACCESS Permission Réfusée" alors j'ai trouvé du code sur internet pour contourner le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Declare Sub keybd Lib "user32" Alias "keybd_event" _
      (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
      ByVal dwExtraInfo As Long)
     
    Public Sub appui_touche(T As Long)
    'appuie sur la touche
    keybd T, 0, 0, 0
    'relache la touche
    keybd T, 0, 2, 0
    End Sub
    puis appelé la procédure pour mes besoins dans une macro convertie :

    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
    Function VerifDesEvals_VerifDbleEval()
    On Error GoTo VerifDesEvals_VerifDbleEval_Err
    
        With CodeContextObject
            If (DCount("[NumEval]", "[EVALUATIONS]", "[MAT]=Formulaires![EvaluationCE]![MAT]") And DCount("[NumEval]", "[EVALUATIONS]", "[DateEval]=Formulaires![EvaluationCE]![dateEval]") >= 1) Then
                Beep
                MsgBox "Attention ! Il existe déjà une évaluation pour cet employé à la même date !", vbExclamation, "Evaluation déjà faite pour cet employé !"
                DoCmd.GoToControl "[MAT]"
                .MAT = 0
                appui_touche (vbKeyEscape)
            End If
        End With
    
    
    VerifDesEvals_VerifDbleEval_Exit:
        Exit Function
    
    VerifDesEvals_VerifDbleEval_Err:
        MsgBox Error$
        Resume VerifDesEvals_VerifDbleEval_Exit
    
    End Function
    Même si je n'ai pas compris les 95 % de ce code copié je vais essayer votre proposition et vous tiens très rapidement au courant !

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 28
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    je me suis lancée : Sendkeys ne veut rien savoir " Permission refusée" et je n'ai pas trouvé la façon de manipuler l'appel de procédure appui_touche de manière à ce qu'il accepte la combinaison simultanée "Shift" et "F2"

    Auriez-vous une possibilité, un remède à cela ?

    J'ai cherché pendant des heures mais rien trouvé !

    Merci de votre aide précieuse...

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/09/2004, 16h56

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