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+Formulaire] MsgBox et ouverture d'un formulaire


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Points : 32
    Points
    32
    Par défaut [VBA+Formulaire] MsgBox et ouverture d'un formulaire
    Bonjour tout le monde!!

    j'ai un soucis de prog VBA, et j'espere que quelqu'un pourra m'aider a solutionner le probleme que voici :

    j'ai un formulaire avec 2 listes déroulantes modifiables. Lorsque l'on selectionne les infos qui vont bien dans ces listes, il faut ensuite cliquer sur un bouton pour ouvrir le formulaire correspondant a ce choix.

    cependant, certaines infos de la 2e liste ne sont pas compatibles avec celles de la 1ere. J'ai donc créé une fonction qui permet d'avertir l'utilisateur que sa saisie n'est pas correcte pour ce cas précis, message qui s'affiche a l'aide d'une MsgBox.

    Le probleme rencontré est que si la saisie est mauvaise, en cliquant sur la msgbox, une erreur d'execution apparait apres les End Select, car aucun formulaire ne peut etre ouvert.

    Je souhaiterai donc rajouter une commande du style

    if clic sur msgbox, reouvrir le formulaire de selection
    else ouvrir formulaire correspondant au choix

    comment puis je récuperer la commande du bouton ok de la msgbox pour résoudre mon pb?

    voici le code associé (enfin une fraction de ce code)

    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
    25
     Case 8 'Option GE90-1
     
            Select Case Choix_Prof
     
                Case 3
                    stDocName = "F_GE90-1_NGV1_BP"
                Case 7
                    stDocName = "F_GE90-1_NGV1_HP"
                Case 9
                    stDocName = "F_GE90-1_NGV2_HP"
                Case 12
                    stDocName = "F_GE90-1_HPT1"
                Case 13
                    stDocName = "F_GE90-1_HPT2"
                Case Else
                    'MsgBox("Erreur de saisie")
            End Select
     
    End Select
     
        DoCmd.OpenForm stDocName, , , stLinkCriteria
     
     DoCmd.OpenForm stDocName, , , stLinkCriteria
     
        Application.DoCmd.Close acForm, Me.Name
    Merci pour l'aide que vous pourrez m'apporter

    Bon courage pour la journée (pluvieuse et fraiche sur Paris... )

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

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

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

    cependant, certaines infos de la 2e liste ne sont pas compatibles avec celles de la 1ere. J'ai donc créé une fonction qui permet d'avertir l'utilisateur que sa saisie n'est pas correcte pour ce cas précis, message qui s'affiche a l'aide d'une MsgBox.
    Est-ce que l'utilisation de listes déroulantes liées ne résoudraient pas ton problème de manière plus élégante ?

    Domi2

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Points : 32
    Points
    32
    Par défaut
    Bonjour Domi2!!

    Est-ce que l'utilisation de listes déroulantes liées ne résoudraient pas ton problème de manière plus élégante ?
    Effectivement j'y avais pensé, mais je ne sais pas trop comment m'y prendre, vu que je ne suis pas très calé niveau programmation (enfin je tatonne et teste tant que je peux a partir d'exemples...)

    Si jamais tu as une manière simple pour m'expliquer, je suis preneur.

    Merci à toi

    Guigui

  4. #4
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Regarde ici.

    Domi2

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Points : 32
    Points
    32
    Par défaut
    Re,

    merci pour le lien, je testerai ça apres le dejeuner, et si j'ai encore des soucis je referai appel a ton aide.

    Bon ap'

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Points : 32
    Points
    32
    Par défaut un petit pas a été fait, mais toujours pas résolu mon probleme n'est...
    Re,

    J'ai testé la solution proposée dans le lien que tu m'as proposé ce matin.

    voici le code que j'ai renseigné dans la partie "Propriétés, Données de la liste deroulante a mettre ajour en fonction de la 1ere :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [T_Etage_Profil].[ID], [T_Etage_Profil] AS Expr1, [T_Etage_Profil].[IDMoteur] FROM T_Etage_Profil WHERE ((([T_Etage_Profil].[IDMoteur])=[Forms]![F_Caract_JEU_essai_listes].[Choix_Moteur]));
    il y a aussi le code suivant pour l'actualisation de cette meme liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Choix_Moteur_Change()
     
        Me.Choix_Profil.Requery
     
    End Sub
    Cependant, quand jemet le formulaire en mode affichage pour le tester, quand je selectionne un type moteur, 2 boites de dialogues s'affichent et me demandent de renseigner des valeurs de parametres

    Et ensuite, la 2e liste est vierge de données

    Pour plus de clareté, voici la structure des 2 tables que je souhaite utiliser :

    Première table : T_Type_Moteur contenant 3 champs : N_Type_Moteur (numeroauto), Type Moteur (texte avec nom du moteur), et IDMoteur (numeros 1 ou 2 suivant constructeur du moteur)

    2eme table : T_etage_Profil avec 4 champs : N_Etage (numeroauto), Désignation etage (texte avec nom etage), ID (numero de 1 à 14 propre a chaque désignation et IDMoteur, qui reprend le meme champ que dans la table T_Type_Moteur.

    Une liaison est faite entre les 2 IDMoteur de chacune de ces tables

    Voila j'espere que c'est assez clair et complet, merci de votre aide

    Bon aprem'
    Guigui

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Points : 32
    Points
    32
    Par défaut C bien, j'avance tout seul !! :-p
    Et oui, parfois l'acharnement permet d'avancer tout seul!!!
    J'ai trouvé d'ou venait mon erreur...

    Il manque l'identification de la colonne "désignation etage" dans la ligne de commande juste avant le "from" (cf le code posté ci avant)

    Cela étant, il y a toujours un petit soucis : pour les 2 premiers type moteur, la liste fonctionne bien, mais elle ne fonctionne plus a partir du 3eme...

    Comment pourrais-je faire pour résoudre cela?!!

    Merci pour l'aide

    Guigui

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/04/2008, 17h15
  2. Réponses: 6
    Dernier message: 25/03/2007, 09h40
  3. Réponses: 6
    Dernier message: 08/02/2007, 17h06
  4. [Formulaire]Positionnement à l'ouverture d'un formulaire
    Par jfrancoiscornu dans le forum IHM
    Réponses: 1
    Dernier message: 05/02/2007, 19h17
  5. [VBA-A] Ouverture d'un formulaire
    Par amaurysipa dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/03/2006, 16h17

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