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 :

controler via une msgbox avant d'updater par une inputbox


Sujet :

IHM

  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut controler via une msgbox avant d'updater par une inputbox
    bonjour,
    voici mon problème :
    d'une part j'ai une table "tbl1" avec par exemple, les champs suivant :
    référence!adresse!initial!
    AAA!12 chemin de la rue! !
    et une seconde table personne avec :
    init!nom!, où init est défini en champs unique
    jd!jean dupont!
    je!jean duchemin!
    mq!marcel quelqun!
    Depuis un formulaire, je saisis toutes les données des champs référence et adresse, qui concerne 1 première personne. puis tous les dossiers de la seconde personne etc.etc.
    Ce qui m'interesse est que lorsque j'ai fini de saisir tous les dossiers de la première personne, c'est d'updater le champ initial de celle ci, correspondant au champ personne!init. Mais afin d'eviter les erreurs de saisis, càd attribuer les dossiers à une mauvaise personne, j'aimerai declencher une msgbox de validation "OK CANCEL"qui me préviendrai "vous allez attribuer ces dossiers à Jean dupont" par exemple.
    Donc bien que, et dans l'inputbox et dans tbl1!initial, c'est bien l'initial de la personne qui apparait.
    Je veux que ce soit le nom de la personne qui apparaisse dans la msgbox.
    j'espère que je ne suis pas trop confu, donc j'ai deux questions autour de ceci :
    comment updater les champ vide de tbl1!init via mon inputbox, mais avant cela comment annoncer le nom complet de la personne dans la message box.
    Merci de votre aide.

  2. #2
    Membre Expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Par défaut
    Bonjour,
    Houla...un peu confus tout cela.....
    Donc je vais essayer de répondre par rapport à ce que j'ai compris..
    comment annoncer le nom complet de la personne dans la message box
    Pour cela il faut utiliser le nom du contrôle qui contient le Nom de la personne..
    Par exemple sur ton formulaire de saisie, tu saisie le nom de la personne dans un champ nommé "Texte16"......
    Tu posséde sur ce même Form, un contrôle bouton de commande nommé "Commande 18" (c'est ce bouton qui te permet de valider ta saisie)
    Sur l'événement "Sur Clic" du bouton de commande tu tape:
    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
    Private Sub Commande18_Click()
    Dim msg, style, Titre, reponse
    'Ici Texte16 contiendras le nom de la personne
    msg = "Vous allez attribuer ce dossier à " & Texte16
    style = vbYesNo + vbCritical + vbDefaultButton2
    Titre = "*** Demande de confirmation ***"
     
    reponse = MsgBox(msg, style, Titre)
    'Si tu clic sur OK, ici tu peux mettre n'importe quel code pour faire ce que tu veux.....
    If reponse = vbYes Then
        MsgBox "Opération OK"
     
    'Sinon, si tu clic sur Annule, le code s'arrête tout simplement.....
    Else
    End If
    Exit Sub
    End Sub
    Voila ceci n'est qu'un début de réponse...teste tout cela et reviens nous dire ce qui ne fonctionne pas.
    Bonne continuation....

  3. #3
    Membre averti
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut
    tout d'abord, merci de la réponse.
    Mais ce n'est pas ce que je recherche exactement.
    Je ne veux pas de saisie direct du nom de la personne.
    Merci de me preciser ce qui est confu pourque j'eclair un peu plus le problème.
    Slts

  4. #4
    Membre Expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Par défaut
    Re,
    Je ne veux pas de saisie direct du nom de la personne.
    Pas tout compris là...

    Comment fait tu pour remplir ta table "Personne"

    Sauf erreur de ma part (ou base un peu bizare ), je pense que lorsque tu saisie sur ton formulaire les champs "référence" et "adresse", tu as également le "nom" du personnel concerné Sinon comment fait tu pour savoir à qui correspond les données que tu es en train de saisir

    Dans une base "normale", lorsque tu construis ton Formulaire pour saisir des données, celle-ci sont soit automatiquement mise à jour lors d'un changement d'enregistrement, lors de la fermeture du formulaire ou éventuellement VALIDER après clic sur un bouton ordonnant cette mise à jour...

    Merci de me preciser ce qui est confu pourque j'eclair un peu plus le problème
    Moi je pense que ta base est mal concue....
    Quel est le champ commun entre ta table tbl1 et ta table Personne
    Réponse Aucune

    Dans ta table tbl1, rajoute un champ Init....tu verras cela sera beaucoup mieux.....et crée une relation entre ces deux champs....

  5. #5
    Membre averti
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut
    re,
    non ma base n'est pas bizarre !
    c'est juste un exemple pour illuster ce qui m'interesse.
    Je peux tout à fait remplir le nom de mon champ. Et il ne necessite aucune relation entre les deux tables. mais c'est volontaire. resumones ce qui me bloque :
    Clic
    !
    inputbox "entrer la valeur de l'initial"
    !
    msgbox "vous allez attribué les dossier à untel"
    !
    si ok : update des champs concerné avec l'initial
    si non : action annulée (ça pas de problème)
    donc ce qui m'interesse c'est de proteger la mise à jour par l'inputbox, par la msgbox ok cancel
    @+

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par Gambit35
    ...
    donc ce qui m'interesse c'est de proteger la mise à jour par l'inputbox, par la msgbox ok cancel ...
    @+
    PAR l'inputbox, PAR la msgbox...

    Relis-toi, et tu comprendras que ton problème n'est pas énoncé de façon compréhensible...

    Dans ton message initial, on a (j'ai...) du mal à comprendre la structure de tes tables, ainsi que ce que tu souhaites réellement faire et où tu bloques exactement...

    "Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément..." comme disait l'autre (je ne sais plus qui... )
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre Expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Par défaut
    Bonjour,
    Je peux tout à fait remplir le nom de mon champ. Et il ne necessite aucune relation entre les deux tables.
    Malgré toute ma bonne volonté, je n'arrive toujours pas à comprendre pourquoi tu n'as pas de relation entre ton champ tbl1.initial et ton champ personne.init

    Enfin ceci dit .... pour reprendre ton exemple:
    Clic
    !
    inputbox "entrer la valeur de l'initial"
    Donc ici, c'est l'utilisateur qui va créer (décider) de lui même de l'initiale attribuée au nom; ce qui donne en suivant ton exemple:
    jd!jean dupont!
    je!jean duchemin!
    mq!marcel quelqun!
    1- Comment va tu faire lorsque tu auras un jean dupond (avec un d)...voire plusieurs
    2- Si tes initiales sont à tes yeux si importantes, je pense quelle doivent te servir à identifier de façon unique une personne Si c'est le cas, ce n'est certainement pas à l'utilisateur de choisir cette clé unique....

    Enfin moi ce que j'en dit, c'est uniquement pour faire avancer....

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par FreeAccess
    Bonjour,

    Malgré toute ma bonne volonté, je n'arrive toujours pas à comprendre pourquoi tu n'as pas de relation entre ton champ tbl1.initial et ton champ personne.init
    ...
    +1

    Si je comprends bien, il y a une table avec des personnes (tbl1) et une deuxième table Personne avec les initiales comme champ unique...

    Les initiales, c'est un très mauvais choix de clé primaire!!

    De plus, tu parles de dossiers à affecter à une personne, mais je ne vois nullement dans tes tables de champs dossier...

    Peux-tu expliquer ce que sont tes champs référence!adresse!initial! dans tbl1 et init!nom! dans Personne?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #9
    Membre averti
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut
    je n'ai pas de relation entre les deux car la table personne, n'est presente qu'en aide-memoire.Elle n'agit sur rien du tout. Je l'ai créé uniquement pour resoudre ce problème. Ah oui lorsque je parle de dossier, ce n'est pas interne à ma base, cela reprsente la totalité des enregistrement à saisir.
    Donc oublions mon problème :
    clairement comment declencher après une inputbox, une msgbox qui validera ou non cette première opération.
    Merci

  10. #10
    Membre Expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Par défaut
    Re,
    comment declencher après une inputbox, une msgbox qui validera ou non cette première opération
    Tu avais déjà trouvé toi même la solution......
    Clic
    !
    inputbox "entrer la valeur de l'initial"
    !
    msgbox "vous allez attribué les dossier à untel"
    !
    si ok : update des champs concerné avec l'initial
    si non : action annulée (ça pas de problème)
    Avec le code que je t'ai déja donné, tu aurais pu peut-être un peu adapter...
    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
    Private Sub Commande2_Click()
    'Ici InputBox pour saisie de l'initiale
    Dim ValeurInit As String
    ValeurInit = InputBox("Entrez la valeur de l'initiale: ", "Saisir Initiale")
     
    'Ici MsgBox pour valider Oui / Non
    Dim msg, style, Titre, reponse
    'Ici Texte16 contiendras le nom de la personne
    msg = "Vous allez attribuer ce dossier à " & Texte16
    style = vbYesNo + vbCritical + vbDefaultButton2
    Titre = "*** Demande de confirmation ***"
     
    reponse = MsgBox(msg, style, Titre)
    'Si tu clic sur OK, ici tu peux mettre n'importe quel code
    If reponse = vbYes Then
        MsgBox "Opération OK"
     
    'Sinon, si tu clic sur Annule, le code s'arrête tout simplement.....
    Else
    End If
    Exit Sub
    End Sub
    Ensuite avec un peu de recherche sur le Forum et la tu trouveras comment insérer (mettre à jour) un enregistrement, éventuellemnt avec une requête....

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/11/2014, 17h44
  2. [XL-2007] Msgbox avant la fermeture si une colonne contient une valeur texte précise
    Par Thomas.lp dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/02/2013, 13h26
  3. Réponses: 6
    Dernier message: 02/04/2010, 18h45
  4. [E-03] Insérer une image via une donnée elle même insérée par une autre
    Par Blop le bricoleur dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 24/10/2008, 17h10
  5. Réponses: 7
    Dernier message: 17/10/2006, 17h32

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