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 :

ouvrir un formulaire avec requete SQL


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 33
    Points : 24
    Points
    24
    Par défaut ouvrir un formulaire avec requete SQL
    Bonjour, je pense que la réponse à ma question est très simple mais je n'arrive pas à résoudre ce petit problème

    je voudrais ouvrir un formulaire qui afficherait les personnes travaillant dans un site sélectionné précédemment:
    Nom Prénom Qualification ......

    Voici ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Filtre = "SELECT[TablePersonne].[IdPersonne] "
        Filtre = Filtre & "FROM TableLienSitePersonne,TablePersonne"
        Filtre = Filtre & "[TableLienSitePersonne].[IdSite] = " & [Form_FormulaireVisuSite]![IdSite].Value
        Filtre = Filtre & " AND [TablePersonne].[IdPersonne] = [TableLienSitePersonne].[IdPersonne]"

    Le problème c'est que je ne sais pas où l'insérer.
    Je l'ai mis dans DoCmd.OpenForm
    Mais ca ne fonctionne pas

  2. #2
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Bonjour,

    dans les propriétés du formulaire, dans l'onglet Données, il faut affecter la requête à la ligne source de données.

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Ça c'est la méthode 'dure', tu peux faire cela beaucoup plus simplement en définissant un form lié à ta table et en appliquant un filtre à l'ouverture par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Filtre = Filtre & "[TableLienSitePersonne].[IdSite] = " & [Form_FormulaireVisuSite]![IdSite].Value
     
    docmd.OpenForm "monForm",,,filtre

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 33
    Points : 24
    Points
    24
    Par défaut
    Merci des réponses.

    Avec la méthode DoCmd.OpenForm J'ai une erreur : erreur '3075'
    Erreur de syntaxe dans l'expression.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Dim Filtre As String
        Filtre = "SELECT [TablePersonne].[IdPersonne] "
        Filtre = Filtre & "FROM TableLienSitePersonne,TablePersonne"
        Filtre = Filtre & " WHERE [TableLienSitePersonne].[IdSite] = " & [Form_FormulaireVisuSite]![IdSite].Value
        Filtre = Filtre & " AND [TablePersonne].[IdPersonne] = [TableLienSitePersonne].[IdPersonne]"
        DoCmd.OpenForm "ListingPersonne", , , Filtre
    Je n'ai pas trouvé l'erreur si quelqu'un avait la solution ce serai super
    Merci

  5. #5
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filtre = Filtre & "FROM TableLienSitePersonne,TablePersonne"
    Il manque un espace à la fin entre les guillemets et TablePersonne

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 33
    Points : 24
    Points
    24
    Par défaut
    Toujour la même erreur et et je n'ai pas encore trouvé la réponse

    Ce qui est étonnant c'est que j'ai plusieurs autres requêtes qui ressemblent à celle-ci (copier coller) et elles fonctionnent

    Je vais certainement essayer de prendre la première méthode et de mettre ca sur la source du formulaire finalement
    Merci pour les infos

  7. #7
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Salut à tous,

    Excusez-moi de mon intervention, mais je veux éclairer certains points et corrigez-moi si je me trompe.
    Citation Envoyé par leskev
    ...
    je voudrais ouvrir un formulaire qui afficherait les personnes ...
    Voici la requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        Filtre = "SELECT[TablePersonne].[IdPersonne] "
        Filtre = Filtre & "FROM TableLienSitePersonne,TablePersonne"
        Filtre = Filtre & "[TableLienSitePersonne].[IdSite] = " & [Form_FormulaireVisuSite]![IdSite].Value
        Filtre = Filtre & " AND [TablePersonne].[IdPersonne] = [TableLienSitePersonne].[IdPersonne]"
    Tu as donné le nom de "Filtre" à cette variable mais ceci n'est pas un filtre. Un filtre se limite d'après ce que j'ai cru comprendre, à la partie critère d'une intruction SQL sans le mot clé WHERE.
    Je crois qu'il est important de bien choisir le nom que l'on attribue aux objets et variables.

    Avec les lignes de code que tu proposes, tu as l'intention de modifier la source d'un formulaire. Cela est possible si d"ja le formulaire existe avec les contrôles adéquats (donc plus besoin de modifier la source de données de chaque contrôle). Et pour ça, il faut que tu ouvres le formulaire en mode desing, ensuite modifier sa source de données, ensuite fermer le formulaire en enregistrant et le rouvrir, cette fois en mode d'affichage normal. Tout un sport et je me joigne à marot_r qui a dit que "c'est la méthode 'dure'"!

    La "bonne méthodeé serait la proposition de marot_r, avec une toute petite rectification (si marot_r le permet)
    Code de marot_r : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    'Filtre = Filtre & "[TableLienSitePersonne].[IdSite] = " & [Form_FormulaireVisuSite]![IdSite].Value
    Filtre = "[TableLienSitePersonne].[IdSite] = " & [Form_FormulaireVisuSite]![IdSite].Value
     
    docmd.openForm "nomForm",,,Filtre

    Une autre possibilité est d'ouvrir le formulaire, puis de définir le filtre et enfin l'appliquer. C'est assez long, mais une autre facette à connaitre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    docmd.OpenForm "nomForm"
    Form_nomForm.Filter = "[TableLienSitePersonne].[IdSite] = " & [Form_FormulaireVisuSite]![IdSite].Value 'définit le filtre
    Form_nomForm.FilterOn = True 'active le filtre
    Pour pouvoir utiliser Form_nomForm, il faut que la propriété Avec module soit activée sur Oui dans le formulaire désigné par nomForm.

    Bon courage et @+
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi!
    Albert Einstein

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Juste un point de précision, on peut changer le recordsource d'un form à la volée pas besoin d'être en mode design pour cela.

    Ça reste selon moi une méthode 'dure' :-), je l'ai utilisé lorsque j'avais des problème de performance, le reste du temps je fais travailler Access pour moi.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 33
    Points : 24
    Points
    24
    Par défaut
    Merci beaucoup pour toutes ces précisions, ça y est c'est fonctionnel grâce à vous
    J'avais des boites de dialogue qui s'affichaient avec la dernière méthode proposée qui me demandaient d'entrer les valeurs des filtres. J'ai mis un "formulaire de transition" pour pouvoir pouvoir afficher ce que je souhaitai. Maintenant, plus de boite de dialogue, c'est automatique ça fonctionne.

    Encore merci et à bientôt

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

Discussions similaires

  1. Problème avec un sous formulaire et requetes SQL
    Par louzz dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 15/01/2010, 14h22
  2. [AC-2007] Ouvrir un formulaire avec une requete
    Par eidern dans le forum IHM
    Réponses: 2
    Dernier message: 17/12/2009, 21h23
  3. Pb avec requete SQL
    Par Naud dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 06/07/2005, 19h13
  4. Pb avec requetes SQL
    Par Furtif_00 dans le forum Bases de données
    Réponses: 15
    Dernier message: 22/03/2004, 20h14
  5. probleme avec requete sql aime pas les strings
    Par lil_jam63 dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/02/2004, 14h45

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