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

VB.NET Discussion :

Problème d'utilisation des colonnes Expression


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Par défaut Problème d'utilisation des colonnes Expression
    Bonjour à tous,
    Je vous ai largement sollicité ces derniers temps mais je suis encore devant un problème.
    La solution de tomlev sur un post récent avec des colonnes expression ma donné des idées et j'aimerais (si c'est possible) remplacer des calculs que je fais actuellement en parcourant toutes les lignes de mes tables par un calcul dans ce type de colonne.
    J'ai commencé par créer ma colonne Expression dans le DataSet mais j'ai une erreur lorsque je valorise la propriété Expression : (Impossible d'interpréter le jeton 'Child' à la position 1.)
    Voici en détail ce que je voudrais faire :

    J'ai 3 tables :
    Table 'Devis' :
    ID (Clé Primaire auto-incrémenté)
    exp_ID_Commande (Colonne expression)

    Table 'Commandes'
    ID (Clé Primaire auto-incrémenté)

    Composition de 'J_Cde_Devis' :
    ID (Clé Primaire auto-incrémenté)
    ID_COMMANDE (FKey3 : Clé étrangere liée à ID de la table 'Commandes')
    ID_DEVIS (FKey4 : Clé étrangere liée à ID de la table 'Devis')

    La table J_Cde_Devis est une table de jonction qui me sert à stocker tous les devis qui possède une commande. (Une commande peux posséder plusieurs devis, mais un devis ne peux pas faire l'objet de plusieurs commande). PS: J'aurais pu m'éviter cette table de jonction mais je tiens à la conserver au cas ou.

    Je voudrais faire un calcul dans ma colonne exp_ID_Commande pour trouver l'ID_COMMANDE de chaque Devis (qui possede une commande) dans la table J_Cde_Devis.

    J'ai mis ceci dans la propriété expression de ma colonne exp_ID_Commande mais j'obtiens le message d'erreur cité plus haut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableDevis.Columns("exp_ID_COMMANDE").Expression = "Child(FKey4).ID_COMMANDE"
    Je ne sais pas i c'est possible ou si il faut rajouter encore une relation ou autres.
    J'espère que vous pourrez m'aider, ça pourrait me simplifier considérablement mon programme si ça fonctionne.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    FKey4 est une relation entre Commandes et J_Cde_Devis, donc elle n'est pas accessible dans la table Devis. Je ne suis pas sûr que ce que tu cherches à faire soit faisable avec une table de jointure, et vu que cette table de jointure ne sert à rien (puisqu'un devis a une seule commande), il vaudrait mieux la supprimer.

    Il faudrait plutôt faire une relation avec Commandes comme parent et Devis comme enfant

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Par défaut
    Merci de m'avoir répondu tomlev,
    J'ai vérifier à 2 fois mais Fkey4 est bien une relation entre Devis et J_Cde_Devis non ?
    C'est ce mot clé Child qui me semblait être une solution, je me disais que l'on devait pouvoir faire quelques choses avec dans ce style mais peut-être que c'est pas possible. Comme c'est la première fois que j'utilise les expressions je ne sais pas répondre à ça et je ne sais pas non plus très bien à quoi sert ce mot clé Child.

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Par défaut
    J'arrive à faire la somme des ID_COMMANDE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableDevis.Columns("exp_ID_COMMANDE").Expression = "Sum(Child(FKey4).ID_COMMANDE)"
    Vu que je n'ai qu'un seul ID_COMMANDE par devis ça fonctionne mais vous avez raison, c'est un défaut de conception au départ.
    Je ne peux pas avoir à la fois ma table J_Cde_Devis et vouloir obtenir un seul l'ID ce n'est pas logique, d'ou mon problème.
    En vous remerciant pour votre aide.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par BasicZX81 Voir le message
    J'ai vérifier à 2 fois mais Fkey4 est bien une relation entre Devis et J_Cde_Devis non ?
    Euh oui pardon, c'est moi qui dit n'importe quoi

    Citation Envoyé par BasicZX81 Voir le message
    C'est ce mot clé Child qui me semblait être une solution, je me disais que l'on devait pouvoir faire quelques choses avec dans ce style mais peut-être que c'est pas possible. Comme c'est la première fois que j'utilise les expressions je ne sais pas répondre à ça et je ne sais pas non plus très bien à quoi sert ce mot clé Child.
    Bah ça sert à faire référence à une ligne de la table enfant, sauf qu'en pratique il y en a généralement plusieurs...

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Par défaut
    Euh oui pardon, c'est moi qui dit n'importe quoi
    Y'a pas de soucis.
    J'ai regardé de plus prêt les expressions dans les colonnes calculées depuis hier, je dois dire que la syntaxe n'est pas simple quand on a pas l'habitude et donc je ne suis pas arrivé à faire ce que je voulais. (Par exemple pour ajouter des conditions dans une fonction Sum).
    J'ai noté aussi suite à mes essais que l'on ne pouvait pas utiliser les expressions sur des colonnes qui ont une clé étrangère.
    Du coup au vu de ces difficultés, j'ai conservé mes colonnes classiques avec mes calculs comme je faisait avant.
    Je pourrais toujours remplacer quelques colonnes classique par des colonnes expression plus tard quand je maîtriserais un peu mieux la synthaxe.
    En tout cas j'ai rétablie tout les calculs et mon programme fonctionne Nickel, je suis vraiment content. Je le doit en partie aux membres de ce site que je remercie énormément pour l'aide apportée et sans qui je ne serais pas parvenu à allez jusqu'au bout.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par BasicZX81 Voir le message
    (Par exemple pour ajouter des conditions dans une fonction Sum).
    Ca doit être possible en utilisant IIF : IIF(condition, valeurSiVrai, valeurSiFaux)Toute la doc des fonctions disponibles est ici :
    http://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression.aspx

    Citation Envoyé par BasicZX81 Voir le message
    J'ai noté aussi suite à mes essais que l'on ne pouvait pas utiliser les expressions sur des colonnes qui ont une clé étrangère.
    Je comprends pas ce que tu veux dire...

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

Discussions similaires

  1. [VBA-E] Problème pour masquer des colonnes.
    Par martiweb dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/04/2007, 02h53
  2. Problème d'utilisation des files
    Par AraBorLeg dans le forum C
    Réponses: 4
    Dernier message: 06/01/2007, 20h55
  3. Réponses: 1
    Dernier message: 24/11/2006, 16h36
  4. Problème d'utilisation des attributs width et height avec une image distante
    Par Ptit_Mouss dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/09/2006, 15h40
  5. problème de groupement des colonnes
    Par opeo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/09/2006, 16h35

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