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 :

Recherche dans sous-formulaire


Sujet :

IHM

  1. #1
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 219
    Points : 108
    Points
    108
    Par défaut Recherche dans sous-formulaire
    Bonjour tout le monde,


    Je vais essayer d'expliquer le mieux possible mon problème:

    La base:

    Une table "BD_ETUD" contenant des données sur des étudiants(+/- 200.000 records), non indexée dont voici un exemple d'enregistrement:

    NUMERO|NOM |PRENOM| INSTITUT | ANNEE
    01 |DUPONT |LOUIS | UP1 | 2004
    02 |DURAND |PIERRE | UP2 | 2004
    01 |DUPONT |LOUIS | UP1 | 2005
    01 |DUPONT |LOU | UP1 | 2006


    Le seul moyen d'identifier un étudiant est par son NUMERO (car son nom et son prénom, ont quelques fois été mal encodés)


    Mon boss (qui a créé la DB, au départ en DBASE...) m'a demandé de lui produire un formulaire de présentation de ces données.


    J'ai donc créé un formulaire: "Frm_GestionEtudiant" dont la source est:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT BD_ETUD.NUMERO FROM BD_ETUD ORDER BY BD_ETUD.NUMERO;

    Et ensuite un sous-formulaire "sub_Etudiant_Frm_GestionEtudiant" lié au formulaire père par le champ NUMERO et dont la source est:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT BD_ETUD.NUMERO, BD_ETUD.NOM, BD_ETUD.PRENOM, BD_ETUD.ANNEE, BD_ETUD.INSTITUT FROM BD_ETUD ORDER BY BD_ETUD.ANNEE DESC;


    Ma question est:

    Comment à partir d'un champ texte se trouvant sur mon formulaire principal, faire une recherche sur un champ se trouvant dans le sous-formulaire.

    Bref, comment tapper un NOM et que le formulaire principal se positionne sur le record relatif à ce nom?



    Voila ce que j'ai pour le moment:

    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
    26
    27
    28
    29
    Private Sub Texte_Rechercher_KeyDown(KeyCode As Integer, Shift As Integer)
     
    Dim str As String
         str = Me.Texte_Rechercher.Text
        If (Not IsNull(str) And Not (str = "")) Then
     
     
         Dim f As Form
         Set f = Forms(Me.Name)(Me.sub_Etudiant_Frm_GestionEtudiant.Name).Form
     
     
         ' utilise un clone du recordset du sous formulaire. 
        ' seulement celui ci ne contient QUE les records liés au formulaire
         Set Rst = f.RecordsetClone
            Select Case KeyCode
            Case vbKeyReturn
                Rst.FindFirst "[BD_ETUD].[NOM] like '*" & str & "*' "
                If Rst.NoMatch Then
                    MsgBox "Fin de la recherche"
                Else
                    Me.Bookmark = Rst.Bookmark
                End If
            Me.Texte_Rechercher.SetFocus
     
            Case Else
     
            End Select
        End If
    End Sub

    Merci à tous!

    ps) inutile de me dire que la structure de la DB a été mal étudiée, je le sais bien(tout serait plus facile avec 2 tables) mais mon boss ne veut pas en changer...

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 926
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 926
    Points : 4 843
    Points
    4 843
    Par défaut
    Tu penses un peu trop compliqué :

    Rnlève le distinct et ajoute NOM dans la rq source du frm principal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT  NUMERO, NOM FROM BD_ETUD ORDER BY NUMERO;
    ainsi tu pourras aller directement au bon record du frm principal par un

  3. #3
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 219
    Points : 108
    Points
    108
    Par défaut
    Citation Envoyé par micniv
    Tu penses un peu trop compliqué :

    Rnlève le distinct et ajoute NOM dans la rq source du frm principal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT  NUMERO, NOM FROM BD_ETUD ORDER BY NUMERO;
    ainsi tu pourras aller directement au bon record du frm principal par un

    Malheureusement non, puisque j'ai précisé que le nom et le prénom sont parfois mal encodé.(il m'affiche des lors, 2 fois le meme record mais avec un nom ou un prénom différent)



    Pensez vous que l'utilisation de la fonction "last" en SQL serait une solution?

    Ma requete sur laquelle est basée le formulaire serait:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DISTINCT BD_ETUD.NUMERO, Last(BD_ETUD.NOM) AS DernierDeNOM, Last(BD_ETUD.PRENOM) AS DernierDePRENOM, Last(BD_ETUD.DATE_NAIS) AS DernierDeDATE_NAIS
    FROM BD_ETUD
    GROUP BY BD_ETUD.NUMERO
    ORDER BY BD_ETUD.NUMERO;

Discussions similaires

  1. [AC-2007] Recherche dans sous formulaire
    Par Rickhq dans le forum IHM
    Réponses: 2
    Dernier message: 07/11/2013, 17h09
  2. [AC-2003] Afficher recherche dans sous formulaire
    Par tsuki95 dans le forum VBA Access
    Réponses: 1
    Dernier message: 01/02/2011, 17h11
  3. [AC-2007] Recherche dans sous-formulaires
    Par brg2009 dans le forum IHM
    Réponses: 2
    Dernier message: 30/05/2009, 10h34
  4. rechercher dans sous formulaire selon 1 critère
    Par cilcemax dans le forum IHM
    Réponses: 2
    Dernier message: 05/02/2008, 18h05
  5. Recherche dans sous formulaires
    Par dfournier dans le forum IHM
    Réponses: 5
    Dernier message: 08/12/2005, 17h43

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