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

Access Discussion :

Module de recherche


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 66
    Points : 28
    Points
    28
    Par défaut Module de recherche
    Bonjour,

    Comment modifier le module de recherche de Fabrice CONSTANS 1ère partie pour
    1 - la table est définie (tbl_xxx) à la place de la liste déroulante cbo_table .
    2 - faire plusieurs choix dans la liste des champs.

    Merci

  2. #2
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 274
    Points : 6 583
    Points
    6 583
    Par défaut
    Salut
    Peut-être en utilisant la méthode de recherche de Jeannot45

  3. #3
    Nouveau membre du Club
    Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 66
    Points : 28
    Points
    28
    Par défaut
    Voici le code utilise:
    ********************************************
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    !Private Sub cmd_Rechercher_Click()
    !
    !    Dim strTable As String, strField As String, strCriteria As String, strSql As String
    !   Dim Criter As Variant
    !  
    !   strTable = "[" & Me.cbo_table & "]"         ' récupère le nom de la table
    !   strField = "[" & Me.cbo_champ & "]"         ' récupère le nom du champ
    !    
    !    'Gestion des nulls
    !    If IsNull(Me.cbo_table) Or IsNull(Me.cbo_champ) Then
    !      MsgBox "Vous devez renseigner la table et le champ pour effectuer une recherche !", vbExclamation + vbOKOnly, "Recherche"
    !      Exit Sub
    !    End If
    !
    !    ' force les majuscules l'un ou l'autre
    !    Me.txt_critere = UCase$(Nz(Me.txt_critere))
    !    'Me.txt_critere = StrConv(Me.txt_critere, vbUpperCase)
    !
    !    ' compose le critere de recherche
    !    strCriteria = strTable & "." & strField & " Like """ & Me.txt_critere & """"
    !   
    !        Select Case Me.opt_Recherche
    !                  Case 1 ' strictement égal
    !                       strCriteria = strTable & "." & strField & " Like """ & Me.txt_critere & """"
    !                  Case 2 ' commence par
    !                       strCriteria = strTable & "." & strField & " Like """ & Me.txt_critere & "*"""
    !                  Case 3 ' contient
    !                strCriteria = strTable & "." & strField & " Like ""*" & Me.txt_critere & "*"""
    !                  Case 4 ' finit par
    !                       strCriteria = strTable & "." & strField & " Like ""*" & Me.txt_critere & """"
    !                  Case 5 ' ne contient pas
    !                       strCriteria = "NOT (" & strTable & "." & strField & " Like ""*" & Me.txt_critere & "*"")"
    !           End Select
    !    ' construit la requête sql
    !    strSql = "SELECT DISTINCTROW " & strTable & ".*"
    !    strSql = strSql & " FROM " & strTable
    !    strSql = strSql & " WHERE ((" & strCriteria & "));"
    !    
    !Me.lst_resultat.ColumnWidths = !"0,817cm;0,817cm;1,561cm;2,561cm;2cm;0,803cm;2,561cm;2,561cm;0,806cm;2,561cm;2,561cm;0.8cm;2,561cm;2,561cm;2,561cm;2,561cm;1cm;;2cm;0.8cm;2cm;2cm;0.8cm;2cm;!2cm;1cm;1cm;1cm;1cm;1cm;2cm;1cm"
    !
    !
    !    Me.lst_resultat.RowSource = strSql  ' affecte sql a lst_Resultat
    !    Me.lst_resultat.Requery             ' recalcule la liste
    !    
    !    
    !   Me.lbl_nbRecord.Caption = IIf(Me.lst_resultat.ListCount _
    !        <= 1, 0, Me.lst_resultat.ListCount - 1) & "/" & _
    !        DCount(Me.cbo_champ, Me.cbo_table)
    !    
    !End Sub
    ********************************************************
    Comme intitulé dans le premier message, il s'agit celui de Loufab.
    Comment remplacer

    strTable = "[" & Me.cbo_table & "]" ' récupère le nom de la table:
    remplacé par le nom de la table qui est la seule utilisée dans le formulaire

    strField = "[" & Me.cbo_champ & "]" ' récupère le nom du champ:
    Comment choisir les champs que l'on désire dans la liste déroulante Me.cbo_champ.
    Comment faire une recherche sur 2 champs de cette table (champs texte , champs numerique.

    Merci

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 411
    Points : 19 988
    Points
    19 988
    Billets dans le blog
    66
    Par défaut
    Bonjour,

    strTable = "[" & Me.cbo_table & "]" ' récupère le nom de la table:.
    remplacé par le nom de la table qui est la seule utilisée dans le formulaire
    ça me semble évident à première vue, je ferais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strTable = "[NomTable]"
    Où le terme NomTable est à remplacer par le nom de ta table.

    Cdlt,

  5. #5
    Nouveau membre du Club
    Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 66
    Points : 28
    Points
    28
    Par défaut
    Bonjour,
    Merci pour la réponse, mais je me suis mal exprimé.
    Le formulaire s'ouvre sur une liste déroulante "Me.cbo_Table" ou on choisit la table désirée.
    Or je n'utilise qu'une seule table intitulée "tbl_Naissances".
    ----------------------------------------
    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
    !Private Sub cbo_table_AfterUpdate()
    !
    !Dim strTable As String
    !
    !    'Mise à jour des liste déroulantes
    !    Me.cbo_champ.RowSource = Me.cbo_table.Value
    !    Me.cbo_champ.Requery
    !    
    !    'Récupère le nom de la table
    !    strTable = Me.cbo_table
    !    
    !    'Rend visible
    !    Me.lblNaissances.Visible = True
    !    Me.ImgNaissances.Visible = True
    !    
    !End Sub
    -------------------------------------
    Je souhaite supprimer la liste déroulante "cbo_Table" pour la remplacer par "tbl_Naissances" et pouvoir récupérer les champs de la tbl_Naissances dans cbo_Champ
    Merci

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 411
    Points : 19 988
    Points
    19 988
    Billets dans le blog
    66
    Par défaut
    Bonjour,

    Concernant le nom de la table, je ne vois pas où est le problème, vous pouvez faire simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strTable = "[tbl_Naissances]"
    Cdlt

  7. #7
    Nouveau membre du Club
    Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 66
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par User Voir le message
    Bonjour,

    Concernant le nom de la table, je ne vois pas où est le problème, vous pouvez faire simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strTable = "[tbl_Naissances]"
    Cdlt
    OK
    Autre problème sur le code suivant

    strVille = Me.lst_resultat.Column(13)
    'strResul = DLookup("[tbl_communes.Nom]", "tbl_communes", "[tbl_communes.Ville] = '279'")
    strResul = DLookup("[tbl_communes.Nom]", "tbl_communes", "[tbl_communes.Ville] = 'strVille'")

    La 1ère ligne me renvoie bien le nom de la ville dont le code est 279
    la 2ème ne fonctionne pas. il ne reconnait pas la variable strVille
    J'ai essayé plusieurs formules pour srtVille , "" ,() , [], rien , retourne erreur null
    Merci

  8. #8
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 274
    Points : 6 583
    Points
    6 583
    Par défaut
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strResul = DLookup("[Nom]", "tbl_communes", "[Ville] = " & Me.lst_resultat.Column(13))

  9. #9
    Nouveau membre du Club
    Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 66
    Points : 28
    Points
    28
    Par défaut
    Bonjour,
    Cela fonctionne en me retournant le code numérique ex "151".
    Je voudrais que le résultat corresponde au nom de la ville associé au code "151" ex "Paris" qui est dans la table "Communes"
    Le 1er champ de la table est "Ville" qui est le code "151" le second "Nom" qui correspond à "Paris".
    Merci

  10. #10
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 064
    Points : 24 673
    Points
    24 673
    Par défaut
    Bonjour,

    Peux-tu nous faire parvenir une copie d'écran du début de ta table et une copie d'écran de la structure. ?

    On pourrait y voir les noms de colonnes et les premières valeurs. ça nous permettra de savoir pourquoi [Nom] renvoie '151' et non pas le nom de la ville.

    Si Nom contient le Paris et que Ville contient 151 il n'y a pas de raison que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strResul = DLookup("[Nom]", "tbl_communes", "[Ville] = " & Me.lst_resultat.Column(13) )
    Ne renvoi pas "Paris" pour un tuple 151, "Paris". Si Ville est Numérique uniquement.
    Si Ville est de type Texte la syntaxe doit plutôt être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strResul = DLookup("[Nom]", "tbl_communes", "[Ville] = """ & Me.lst_resultat.Column(13)  & """")
    Cordialement,

  11. #11
    Nouveau membre du Club
    Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 66
    Points : 28
    Points
    28
    Par défaut
    Copie du contenu : tbl_communes

    Ville Nom
    001 Achères
    002 Ainay-le-Vieil
    003 Aix-d'Angillon
    038 Allichamps
    004 Allogny


    Copie de la structure

    Ville Texte Court
    Nom Texte Court

    Déclaration
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim strResul As Variant
    ou
    renvoie toujours un nombre.

    Les deux formules :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strResul = DLookup("[Nom]", "tbl_communes", "[Ville] = " & Me.lst_resultat.Column(13) )
    strResul = DLookup("[Nom]", "tbl_communes", "[Ville] = """ & Me.lst_resultat.Column(13)  & """")
    Renvoie systématiquement toujours un nombre.

    Merci.

  12. #12
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 064
    Points : 24 673
    Points
    24 673
    Par défaut
    C'est cette syntaxe que tu dois utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    dim strResul as Variant
    strResul = DLookup("[Nom]", "tbl_communes", "[Ville] = """ & Me.lst_resultat.Column(13)  & """")
    Peux-tu poster le code complet de la procédure où tu utilises ce code ?

    Que renvoi Me.lst_resultat.Column(13) au moment de l'exécution ?

    Cordialement,

  13. #13
    Nouveau membre du Club
    Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 66
    Points : 28
    Points
    28
    Par défaut
    Bonjour,
    J'ai résolu mon problème avec ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim strResul As String
     
    strResul = Me.lst_resultat.Column(15)
    Me.LstCodeInsee.Value = strResul
    strResul = Me.LstCodeInsee.Column(1)
    Merci

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 22/06/2010, 16h08
  2. Raccourci Windows-E affiche un module de recherche bizarre
    Par Maximil ian dans le forum Windows XP
    Réponses: 5
    Dernier message: 12/06/2006, 10h03
  3. [MySQL] module de recherche en php
    Par kro35 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 31/05/2006, 14h17
  4. Cration d'un module de recherche
    Par cyberbiker dans le forum Access
    Réponses: 1
    Dernier message: 16/03/2006, 15h25
  5. [STRUTS] Module de recherche
    Par DarkWark dans le forum Struts 1
    Réponses: 6
    Dernier message: 05/03/2006, 11h39

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