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 :

2 tables sources pour un fomulaire: probleme modif!


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 96
    Points : 52
    Points
    52
    Par défaut 2 tables sources pour un fomulaire: probleme modif!
    Bonjour,

    j'ouvre un formulaire dont la source (donnée) est la requete suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM TAnomalie AS ta, TCompte_rendu AS tc;

    Lorsque je l'ouvre je lui transmets un certain nombres de conditions:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    open form "nom_form", , , linkcriteria
    avec linkcriteria qui vaut ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [tc.application_]='Access' and tc.appli_asso = ta.appli_ and ([ta.discriminant]='v1' or ta.discriminant= 'v2' or (ta.discriminant ='v3' and ta.rta_ind='interne'))

    Seulement, je ne peux pas modifier les enregistrements. Je pense que c'est du au fait que je cite 2 tables dans ma requete source!
    Comment puis je faire des modifs?

    Merci d'avance:
    Kleen

  2. #2
    Membre éclairé Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Points : 891
    Points
    891
    Par défaut
    Salut,

    Ce n'est pas directement lié au fait d'utiliser 2 ou 3 ou n tables mais plutôt aux types de relations entre tes tables...
    Cherche de ce côté à mon avis...

    A+
    Si le monde explose, la dernière voix audible sera celle d’un expert, disant que la chose est impossible. - P. Ustinov

  3. #3
    Provisoirement toléré
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 291
    Points : 188
    Points
    188
    Par défaut
    j'ai le meme problème et je ne vois pas comment faire, alors que mes relations sont bien faites, as tu utilisé le code suivant pour tes jointures?
    Le problème n'est pas l'ordinateur mais l'utilisateur

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 96
    Points : 52
    Points
    52
    Par défaut
    Je vais expliquer plus en détail.

    J'ai un 1er formulaire qui dispose d'un sous formulaire dans lequel on retrouve tous les enregistrements de ma table TAnomalie.

    Dans ce premier formulaire, je dispose de:

    Un 1er bouton me permet d'ouvrir un 2nd formulaire qui me permet de consulter le détail d'un enregistrement: Ce second formulaire a pour source la table TAnomalie et je lui passe via openform une condition avec l'id d'une anomalie. Ici, je peux modifier les infos.

    un 2nd bouton (celui que j'ai decrit dans mon 1er message) qui ouvre un 3ieme formulaire

    Je dispose de 3 tables concernés:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    create table TApplication (
    	application varchar (32) primary key,
    	);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    create table TCompte_rendu (
    	application_ varchar (32),
    	appli_asso varchar (32),
    	foreign key (application_) references TApplication(application),
    	foreign key (appli_asso) references TApplication(application),
    	primary key (application_, appli_asso)
    	);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    create table TAnomalie (
    	id counter,
    	numero varchar(32),
    	appli_ varchar (32),
    	foreign key (appli_) references TApplication (application),
    	);
    Dans la table Tapplication il y a les enregistrements suivants:
    appli1, appli2, appli3, appli4, appli5 et appli6.

    Les enregsitrements de la table TAnomalie et en particuliers le champ appli_ ne prendront que les valeurs appli1 à 4.

    Dans la table Tcompte-rendu, on a les enregistrement suivants:
    application-appli_asso
    appli1-appli1
    appli1-appli5
    appli1-appli6
    appli2-appli2
    appli2-appli4
    L'utilisateur renseigne une appli: applilambda.
    Mon objectif est de recuperer dans le 3ieme formulaire, les enregistrements de la table TAnomalie dont le champ appli_ a pour valeur, les valeurs du champs appli_asso placé en face des applications valant applilambda.

    Ma requete est donc ainsi faite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM TAnomalie AS ta, TCompte_rendu AS tc WHERE  [tc.application_]='applilambda' and tc.appli_asso = ta.appli_ and ([ta.discriminant]='v1' or ta.discriminant= 'v2' or (ta.discriminant ='v3' and ta.rta_ind='interne'))
    je met ca pour la source du formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM TAnomalie AS ta, TCompte_rendu AS tc;
    et le reste dans la condition envoye en ouvrant le formulaire!

    J'espere avoir ete clair!!
    Merci d'avance!

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 96
    Points : 52
    Points
    52
    Par défaut
    Non je n'utilise pas inner join. Je fais la jointure avec WHERE!

  6. #6
    Provisoirement toléré
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 291
    Points : 188
    Points
    188
    Par défaut
    moi aussi c'est ce que j'avais fait mais apparemment c'est pas comme ça qu'il faut faire alors qu'en cours c'est ce qu'on m'apprend!
    Le problème n'est pas l'ordinateur mais l'utilisateur

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 96
    Points : 52
    Points
    52
    Par défaut
    Ce que j'en dis c'est que le formulaire n'est plus dépendant d'une table mais d'une requete. D'ou le fait de ne pas pouvoir metre a jour cette table.faut trouver une autre méthode!

  8. #8
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    salut,

    je suis un peu hors sujet mais c'est pour la bonne cause. je répond à cette interrogation :

    Citation Envoyé par b_steph_2
    moi aussi c'est ce que j'avais fait mais apparemment c'est pas comme ça qu'il faut faire alors qu'en cours c'est ce qu'on m'apprend!
    et pourquoi les jointures dans une clause WHERE sont obselètes http://www.developpez.net/forums/vie...ointures+where

    et pour préciser que le pb ne vient pas de la manière dont la jointure est utilisée.
    ps: b_steph_2 tu peux en vouloir à tes profs !

  9. #9
    Provisoirement toléré
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 291
    Points : 188
    Points
    188
    Par défaut
    lol pegaze, j'éviterai j'ai plus qu'une année à subir, lol! En ce qui concerne le problème je suis bien d'accord ça ne vient pas des jointures mais de la requête, c'est pas évident, je chercher désespérément, si j'en sais plus je te file l'info
    Le problème n'est pas l'ordinateur mais l'utilisateur

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 96
    Points : 52
    Points
    52
    Par défaut
    J'ai trouvé un moyen!!

    Je fais 2 requetes!
    La deuxieme est construite avec les resultats de la deuxieme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ma_sql = "SELECT appli_asso FROM TCompte_rendu WHERE application_='" & Me.fapplication & "';"
            Set rst = CurrentDb.OpenRecordset(ma_sql)
            rst.MoveLast
            compteur = rst.RecordCount
            rst.MoveFirst
            sendvar = "[appli_] IN ("
            For i = 0 To compteur - 1
                sendvar = sendvar & "'" & rst("appli_asso") & "'"
                rst.MoveNext
                If Not (i = compteur - 1) Then
                    sendvar = sendvar & ","
                End If
            Next
            sendvar = sendvar & ") "
    sendvar est la variable que je met en parametre d'openform pour wherecondition.
    Le fomulaire prend comme source la table TAnomalie.
    Je n'ai plus de problème.
    Mon code est carrement pas optimizé. IL y a peut-etre mieux mais je m'en contente pour le moment.
    Je ne mets pas resolu car de meilleurs solutions peuvent etre proposé!

Discussions similaires

  1. probleme modification structure table
    Par livinho38 dans le forum Développement
    Réponses: 15
    Dernier message: 20/07/2009, 09h07
  2. Réponses: 4
    Dernier message: 02/06/2009, 17h09
  3. Réponses: 0
    Dernier message: 07/04/2008, 17h56
  4. Réponses: 15
    Dernier message: 21/05/2007, 11h24
  5. Utulisation d'une table pour les jointure ( probleme )
    Par Boumeur dans le forum Langage SQL
    Réponses: 8
    Dernier message: 11/04/2005, 15h21

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