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 :

Filtrer un formulaire sur un champ d'une table liée ?


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 131
    Points : 118
    Points
    118
    Par défaut Filtrer un formulaire sur un champ d'une table liée ?
    Bonsoir,

    Pouvez-vous me dire la meilleure façon de résoudre le problème suivant sur Access 2000:

    J'ai créé une base de propection téléphonique avec une table principale 'SOCIETES' et une table liée 'APPELSTELEPHONIQUES' où je garde la trace de tous mes appels téléphoniques à chacune des sociétés.

    J'ai mis les deux tables dans un formulaire avec sous-formulaire.

    Comme j'ouvre et je referme ce formulaire plusieurs fois dans la journée, je voudrais qu'à chaque ouverture, les sociétés que j'ai déjà appelées dans la journée soit exclues du jeu d'enregistrement.

    Est-ce que je peux utiliser un filtre ? Est-ce que je doit changer la source du formulaire et la remplacer par une requête multitable ?

    Quelle serait la meilleure solution ?

    Merci d'avance,

    Max

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    Tu peux directement mettre le critère dans la clause Where de ta commande Openform. Et modifier ta source en concéquence (requete de correspondance client -> appels)

    Tu n'as plus qu'a faire un requery du formulaire, même à partir d'un autre sans avoir à ouvrir/fermer sans cesse.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 131
    Points : 118
    Points
    118
    Par défaut Comment rédiger la requête de non correspondance ?
    Merci pour la réponse.

    J'ai encore une question: j'ai essayé d'utiliser le générateur de requête pour créer la requête de non correpondance, ça marche quand je bascule la vue, j'ai bien les sociétés qui m'intéressent.

    Mais quand j'affiche le SQL et que je fait un copier-coller vers la clause "where" de mon openform, l'openform se plante:

    Le générateur de requête me donne:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT SOCIETES.Societe, Log.Date
    FROM SOCIETES LEFT JOIN Log ON SOCIETES.IDSociete = Log.IDSociete
    WHERE (((Log.Date)<Int(Now())));

    j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "(((Log.Date)<Int(Now())))"
    dans la clause where de openform mais ça marche pas...

    Est-ce qu'il faut rédiger la clause sql différement ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Pourquoi un Int(Now()), alors que now renvoie une date sous la forme d'un double ?
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 131
    Points : 118
    Points
    118
    Par défaut
    "int" parce qu'il me faut la partie entière de la date (depuis minuit oohoo)
    la partie décimale représente les heures : 0,5 = midi

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut, Alors, tu ne dois pas utiliser Int mais Date qui ne renvoie que la date.

    Le champ de ta table est-il aussi une date ou du texte ?
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    A eviter absolument !

    Utiliser des mots réservés pour des noms d'objets. Exemple le champ Date !

    ça ne peut que poser problème et confusion.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 131
    Points : 118
    Points
    118
    Par défaut
    Merci pour le tuyeau pour date().

    Pouvez-vous m'aider pour la rédaction de la clause sql 'where' de mon openform ?

    dans la table liée des appels téléphoniques j'ai un champs 'DateAppel', (format date)

    ce que je veux faire c'est filtrer le formulaire principal pour que n'appairaissent pas tous les enregistrements où la plus grande valeur de 'DateAppel' dans la table liée est égale à aujourd'hui( Date() )

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    tu ne voir apparaitre que les appels du jour ou tous sauf ce du jour ?
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 131
    Points : 118
    Points
    118
    Par défaut
    je veux que n'apparaissent que les fiches des entreprises que je n'ai PAS déjà appelées dans la journée

  11. #11
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Ce devrait être une expression comme ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    log.DateAppel<date() or isnull(log.DateAppel)
    dateappel inférieure à aujourd'hui ou jamais appelé.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 131
    Points : 118
    Points
    118
    Par défaut
    Salut,

    Après pas mal de grattage de tête, j'ai finalement trouvé une solution pour ma clause 'where' de filtrage, grâce à une requête imbriqué:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    not exists(select Log.IDSociete from Log _
    where Log.DateAppel >= date() _
    and Societes.IDSociete = Log.IDSociete)
    Ca me permet de ne pas avoir à faire défiler les entreprises que j'ai déjà appelées dans la journée quand je reprends ma prospection après une pause(réouverture du fomulaire).

    Merci pour les pistes et les conseils.

    Max

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

Discussions similaires

  1. Filtrer un formulaire sur son champ date
    Par bobosh dans le forum IHM
    Réponses: 1
    Dernier message: 16/09/2008, 13h57
  2. condition sur un champ d'une table
    Par julio02200 dans le forum Access
    Réponses: 12
    Dernier message: 11/07/2006, 14h19
  3. Réponses: 7
    Dernier message: 26/05/2006, 19h45
  4. Réponses: 11
    Dernier message: 17/03/2006, 13h20
  5. contrainte sur deux champs d'une table
    Par bdkiller dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 17/09/2004, 18h26

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