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 :

Sélection automatique d'un nouvel enregistrement dans ZdL [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 29
    Points : 23
    Points
    23
    Par défaut Sélection automatique d'un nouvel enregistrement dans ZdL
    Bonjour à tous !

    J'aurai besoin d'un petit coup de pouce


    Un formulaire A contient une zone de liste déroulante basée sur les enregistrement d'une table : Id (lié) et Nom
    Dans le cas où l'enregistrement souhaité n'existe pas, un bouton me permet d'ouvrir un formulaire B en mode acDialog pour créer ce nouvel enregistrement.
    Un Zdl.requery met ensuite la liste à jour.

    Tout marche jusque là.


    Mais j'aimerai maintenant que le nouvel enregistrement créé soit automatiquement sélectionné dans ma ZdL du formulaire A.
    Voilà où j'en suis :
    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
    Private Sub Ajout_Famille_Btn_Click()
        Dim SQL As String
        Dim RS As DAO.Recordset
        Dim db As DAO.Database
     
        OuvrirForm "Famille_ajout", acDialog
        Me.Famille_CmbBox.Requery
     
        Set db = CurrentDb
        SQL = "SELECT MAX(IdFamille) AS Id FROM Famille;"
        Set RS = db.OpenRecordset(SQL)
        Set db = Nothing
        Me.Famille_CmbBox = RS("Id")
        Set RS = Nothing
    End Sub
    Mais ça ne me satisfait pas car si on ne créé pas de nouvel enregistrement dans le formulaire B (Famille_ajout) et qu'on annule, ça sélectionne quand même le dernier créé (et qui n'a potentiellement rien à voir !).

    Mais là, je bloque
    Un peu d'aide pour organiser ça serait la bienvenue !

  2. #2
    Membre actif Avatar de spaiku
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Septembre 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 209
    Points : 293
    Points
    293
    Par défaut
    Question : quand tu crées un nouvel enregistrement, l'utilisateur renseigne un seul ou plusieurs champs ? S'il en renseigne un seul, tu peux passer par une inputbox. Tu peux ensuite tester la valeur retournée : si elle est nulle, tu quittes la fonction.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    (Je n'ai pas précisé que le code que j'ai donné est dans mon formulaire A.)


    J'ai ce cas de figure à plusieurs endroits : il y a toujours au moins un champ obligatoire à remplir que je peux tester.

    En fait, je crois que tu pointe justement le problème spaiku.

    Je ne sais pas comment tester, dans le formulaire A, ce que j'ai fais dans le formulaire B.
    Il faudrait que je puisse passer l'information de l'un à l'autre quand je valide, mais je ne sais pas comment...
    Actuellement, je ne fais qu'aller rechercher avec A dans la table ce que B vient de faire !

  4. #4
    Membre actif Avatar de spaiku
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Septembre 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 209
    Points : 293
    Points
    293
    Par défaut
    J'ai déjà eu le problème aussi. A l'époque, j'avais procédé de la manière suivante :
    1) Dans le formulaire B, je déclare des variables de portée module. Disons qu'il n'y en a qu'une, et qu'elle s'appelle ValRetour, de type String
    2) Dans le formulaire A, j'écris un truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim Frm as FormulaireB
    Set Frm = New FormulaireB
    FormulaireB.Visible = True
    While FormulaireB.ValRetour = "" then
         DoEvents
    Wend
    'Traitement sur ValRetour
    Set Frm = Nothing
    3) Sur le formulaire B, tu as juste à renseigner la valeur de ValRetour, et le traitement se poursuit.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Je ne connaissais pas cette façon de faire, je vais tester ça dès que possible

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Voilà, tout est bon, grâce à ton aide

    Mon code du formulaire "père" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Ajout_Famille_Btn_Click()
        Dim FormFamille As Form_Famille_ajout
        Dim Famille As String
     
        Set FormFamille = New Form_Famille_ajout
        FormFamille.Visible = True
        While FormFamille.ValRetour = ""
            DoEvents
        Wend
        Famille = FormFamille.ValRetour
        Set FormFamille = Nothing
        Famille_CmbBox.Requery
        Famille_CmbBox.Value = Famille
    End Sub
    Et dans le formulaire "fils", j'ai simplement fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public ValRetour As String
    Et j'affecte la valeur voulue à la validation.

    Merci !

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

Discussions similaires

  1. Nouvel enregistrement dans un formulaire ?
    Par pleasewait dans le forum IHM
    Réponses: 4
    Dernier message: 26/12/2006, 22h53
  2. Réponses: 4
    Dernier message: 06/12/2006, 17h04
  3. nouvel enregistrement dans un sous-formulaire
    Par Pitou5464 dans le forum Access
    Réponses: 1
    Dernier message: 02/09/2006, 16h27
  4. Evenement sur nouvel enregistrement dans formulaire
    Par fredoh dans le forum Access
    Réponses: 3
    Dernier message: 17/07/2006, 14h19
  5. Réponses: 4
    Dernier message: 28/02/2006, 20h12

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