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 :

Ouvrir des formulaires différents en fonction de cases à cocher dans une table


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 35
    Points : 16
    Points
    16
    Par défaut Ouvrir des formulaires différents en fonction de cases à cocher dans une table
    Bonjour à tous,

    Comme d’habitude, je ne suis toujours pas doué en code, j’ai cherché une réponse sur le forum depuis plusieurs jours, mais je n’ai pas trouvé quelque chose similaire à mon problème.

    Sur ma table pour résumer j’ai :
    IdCommande
    Checkbox A
    Checkbox B

    Je voudrais à partir d’un formulaire indépendant qu’une zone de liste déroulante basée sur IdCommande
    m’ouvre un formulaire indépendant si Checkbox A = 0 et Checkbox B = 0
    et que cette même zone de liste déroulante m’ouvre un autre formulaire indépendant si Checkbox A = -1 et Checkbox B = 0
    et encore que cette même zone de liste déroulante m’ouvre un autre formulaire indépendant si Checkbox A = -1 et Checkbox B = -1

    Cette zone de liste déroulante basée sur IdCommande doit m’ouvrir directement le bon formulaire sur le bon IdCommande en fonction des checkbox de la table.
    Je ne sais pas si j’ai été assez clair mais je bute réellement et je commence à m’arracher les cheveux.
    Les tutos de formulaire multi recherche ne m’ont pas aidé pour ce cas là.

    Merci d’avance à ceux qui pourront me consacrer un peu de leur temps pour me répondre

  2. #2
    Membre du Club Avatar de Thierry''
    Profil pro
    Inscrit en
    Février 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 75
    Points : 60
    Points
    60
    Par défaut
    Je procederai comme suit:

    1) Dans ta liste déroulante met tes trois champs

    2) Sur le bouton le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Me.Modifiable0.Column(1, Me.Modifiable0.ListIndex) = -1 And Me.Modifiable0.Column(2, Me.Modifiable0.ListIndex) = -1 Then
    stDocName = "Formulaire1"
    End If
    DoCmd.OpenForm stDocName


    Tu ouvres alors le formulaire1, à modifier pour les autres cas de figures...

  3. #3
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Plusieurs choix :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Modifiable0_Change()
     s = Choose(((-1 * Modifiable0.Column(1)) + (-2 * Modifiable0.Column(2))) + 1, "frm1", "frm2", "frm3", "frm4")
     DoCmd.OpenForm s
    End Sub
    C = (-1 * Modifiable0.Column(1)) ou C = -1 * A
    D = (-2 * Modifiable0.Column(1)) ou D = -2 * B
    index = C+D+1 : l'index permet de récupérer le nom du formulaire (voir l'aide pour Choose)

    on aura donc
    A B C D Index
    0 0 0 0 1
    1 0 1 0 2
    0 1 0 2 3
    1 1 1 2 4

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    Merci Helas et Thierry de m'avoir répondu, je vérifierai cela ce soir car ces deux derniers jours j'ai eu inventaire à mon boulot.
    Mimosa21

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    Bon du coup n'y arrivant pas, j'ai formulé autrement la totalité.
    J'ai créé un requête qui recherche le N° de commande cherché
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Commande.*, Commande.IdCommande
    FROM Commande
    WHERE (((Commande.IdCommande) Like [Tapez Le n° de la commande recherchée]));
    J'ai basé un formulaire dessus avec mon IdCommande et mes cases à cocher et j'ai rajouté un bouton de recherche bt_&Recherche
    Dans le code du bouton
    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
    Private Sub bt_Recherche_Click()
     
    'Si la commande n'est pas encore partie chez le fournisseur
    'Me.CdeEnvoyeeParMail = non et donc ma commande pas encore chez fournisseur
    'Me.CdeChezFrs = non alors (Then)
    If Me.CdeEnvoyeeParMail = 0 And Me.CdeChezFrs = 0 Then
    'Alors on ouvre le formulaire "F_R_CdeMagasinPersonnel2"
    'avec la condition Where "[IdCommande] =" & Me.IdCommande
            DoCmd.OpenForm "F_R_CdeMagasinPersonnel2", , , "[IdCommande] =" & Me.IdCommande
        End If
     
    'Si la commande a été envoyée chez le fournisseur Me.CdeEnvoyeeParMail=oui
    'et Me.CdeChezFrs = non alors (Then)
    If Me.CdeEnvoyeeParMail And Me.CdeChezFrs = 0 Then
    'Alors on ouvre le formulaire F_R_CdeChezFrs avec la condition Where "[IdCommande] =" & Me.IdCommande
     DoCmd.OpenForm "F_R_CdeChezFrs", , , "[IdCommande] =" & Me.IdCommande
        End If
     
    End Sub
    Me reste plus qu'à rafraichir le formulaire à chaque nouvelle recherche de commande
    Voilà pour ceux que ça interesse!
    Encore merci à tous les deux de m'avoir répondu.

    Mimosa21

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 21/12/2008, 19h31
  2. Référencer des cases à cocher dans une procédure.
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 0
    Dernier message: 30/11/2007, 09h34
  3. Réponses: 1
    Dernier message: 16/11/2007, 15h53
  4. Réponses: 4
    Dernier message: 28/03/2006, 15h40

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