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

Requêtes et SQL. Discussion :

[A-00] recherche d'une critere sur 2 tables via une requête


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Points : 25
    Points
    25
    Par défaut [A-00] recherche d'une critere sur 2 tables via une requête
    Bonsoir,

    Je ne trouve pas vraiment de réponse claire à mon problème.

    Voilà, j'aimerai faire une recherche via un champ d'un formulaire sur les données de deux tables.

    les deux tables ont les meme titres de champs mais pas le meme contenu,

    Comment faire pour que je puisse faire une requete de filtre sur ces deux table en meme temps

    car si cela n'est pas trop compliquer, ca m'éviterai de regrouper les deux fichiers dans une seule table

    merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut metallicavid

    utilise une requete UNION pour fusionner les deux tables et ensuite met tes critères de recherche dans la clause WHERE. (affichage SQL)
    fais éventuellement en deux requêtes si tu n'arrives pas en une seule.


  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonjour,

    Comme l'indique l'ami vodiem (Alors Ulysse... Heureux?) mets tes critères de recherche dans les clauses "WHERE". En effet, tous les critères de recherche doivent être inclus dans les clauses WHERE des instructions SELECT respectives. On ne peut utiliser une clause WHERE à la fin d'une requête Union pour filtrer tous les enregistrements.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT n°semaine, ChiffreAffaire2008, Rouge,Bleu, Blanc
    FROM TaTable2
    WHERE (((TaTable2.n°semaine)>[Formulaires]![TonForm]![TonChamp]))
     
    UNION SELECT n°semaine, ChiffreAffaire2008, Rouge," ", Blanc
    FROM TaTable
    WHERE (((TaTable.n°semaine)>[Formulaires]![TonForm]![TonChamp]))
    ORDER BY ChiffreAffaire2008;
    On doit trier la requête Union globalement, ne pouvant le faire individuellement pour chaque clause SELECT.
    Il est à noter qu 'ACCESS permet "d'oublier" le point virgule à la fin de l'instruction SQL. (Mais faisons dans le standard...)
    Si on veut voir apparaître les éventuels doublons il suffit de remplacer UNION par UNION ALL.

    Cordialement.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Points : 25
    Points
    25
    Par défaut
    Mers les gars pour ces infos, je testerai ca tout à l'heure au boulot.

    Bonne journée à vous, je vous tiens au courant

  5. #5
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    Ulysse est heureux et t'envoie ses sirènes te saluer.

    Citation Envoyé par francishop
    On ne peut utiliser une clause WHERE à la fin d'une requête Union pour filtrer tous les enregistrements
    mais on peut faire:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select * from
    (select * from table1 union select * from table2)
    where ...

  6. #6
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Points : 25
    Points
    25
    Par défaut
    J'ai essayé, mais j'ai du merdé qq part

    Pour finir, pour permtre de bien faire la différence dans le formulaire de résultat , j'ai fait une autre requette et j'ai ajouté un sous formulaire

    Merci pour votre aide

  7. #7
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    poste nous la requete car mes dons d'extralucide ne vont pas jusque là...


  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Points : 20
    Points
    20
    Par défaut [A-03] recherche multicritères sur 2 tables
    Je me permets de remonter le poste, parce que j'ai sensiblement le même soucis...
    Je suis par contre sur ACCESS 2003
    Je cherche à effectuer une recherche multi-critères sur 2 tables, dont les noms de champs sont différents mais les champs de critères de recherche sont du même type (nom, ville, code postal).
    J'ai réussi à faire ma requête sur 1 table sans trop de soucis, mais j'avoue que j'ai du mal à intégrer les conseils que vous donnez ici à la requête que j'ai faite (je débute ).
    Le code actuel est le suivant :
    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
    Private Sub cmd_recherche_Click()
        Dim strTable As String, strField As String, strField2 As String, strField3 As String, strCriteria As String, strCriteria2 As String, strCriteria3 As String, strSql As String
        Dim Criter As Variant
     
        strTable = "T_Adherents" 
        strField = "Adh_nom"
        strField2 = "Adh_Ville"
        strField3 = "Adh_CodePostal"
     
        ' compose le critere de recherche
        strCriteria = strTable & "." & strField & " Like ""*" & Me.txt_CritereNom & "*"""
        strCriteria2 = strTable & "." & strField2 & " Like ""*" & Me.txt_CritereVille & "*"""
        strCriteria3 = strTable & "." & strField3 & " Like """ & Me.txt_CritereCP & "*"""
     
        ' construit la requête sql
        strSql = "SELECT DISTINCTROW " & strTable & ".*"
        strSql = strSql & " FROM " & strTable
        strSql = strSql & " WHERE ((" & strCriteria & ")) AND ((" & strCriteria2 & ")) AND ((" & strCriteria3 & "));"
     
     
        Me.SF_AdherentsRch.Form.RecordSource = strSql 
        Me.SF_AdherentsRch.Form.Requery 
     
    End Sub
    Il s'agirait donc d'effectuer cette même recherche sur 2 tables (T_Adherents et T_Structures) sur le même type de critère (Adh_nom et Str_nom, Adh_CodePostal et Str_CodePostal etc..)
    Un peu d'aide pour refondre mon code ne serait pas de refus

    Par ailleurs, ici, le résultat est renvoyé dans un sous-formulaire. Est-il possible d'effectuer la même chose, en renvoyant le résultat de la recherche avec les 2 tables confondues dans la même liste ? (en clair, si je fais une recherche sur le département 75, j'aurais plusieurs résultats dans chaque table : est-il possible de lister le résultat en confondant les données issues d'une table et de l'autre ?)

    merci d'avance !!

Discussions similaires

  1. Création d'une vue sur des tables d'une base Oracle
    Par lcloatre dans le forum Requêtes
    Réponses: 0
    Dernier message: 21/04/2010, 15h41
  2. [2K5] Droits d'accès sur les tables; via une stored procedure
    Par cavo789 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/04/2008, 06h57
  3. Réponses: 1
    Dernier message: 06/12/2006, 18h25
  4. Réponses: 4
    Dernier message: 23/10/2006, 09h09
  5. Réponses: 6
    Dernier message: 09/11/2005, 17h29

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