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

Bases de données Delphi Discussion :

Lier, modifier et cohérence des données issues de deux tables


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 28
    Par défaut Lier, modifier et cohérence des données issues de deux tables
    Bonjour,

    ravi de rejoindre cette communauté dont je lis les posts depuis déjà un certain temps.

    Soit deux tables:

    FRAIS: f_id, f_type, libelle, montant, date
    TYPES: t_id, t_type

    f_type = integer
    t_type = string

    (J'enregistre t_id dans f_type, pour lier les deux tables)

    Afficher le contenu de FRAIS dans une DBGrid, lui lier un DBNavigator, et 4 champs de saisies (dont un DBLookupComboBox qui me remonte la liste 't_type' depuis TYPES) pour les modifs, c'est ok.

    Lorsque je clique sur une ligne du DBGrid, les données sont affichées dans mes champs de saisies, et le lookup fonctionne parfaitement bien. Je peux modifier, supprimer et ajouter un nouvel enregistrement.

    PROBLEME:

    Dans la DBGrid, j'ai f_type (integer) qui est affiché, et je voudrais plutôt voir t_type (string) qui est le type de frais en clair.

    J'ai essayé plein de choses: ajouter un lookup à l'exécution, ça fonctionne, mais je ne peux plus ajouter de nouvel enregistrement avec le DBNavigator: je n'ai plus le même nombre de colonnes entre la Table et le DBGrid.

    J'ai pensé à une jointure, affichée dans le DBGrid, mais lorque je clique sur la DBGrid, mes champs de données ne sont plus remplis automatiquement.

    Autrement dit, comme faire en sorte d'avoir à la fois le 't_type' affiché (et non le t_id) dans la DBGrid, toutes les données remontées dans les champs de saisie/modif, y compris un dblookupcombobox (pour la liste des type de frais) lorsque je clique sur la DBGrid, et le DBNavigator qui fonctionne pour la modif/ajout/suppr des enregistrements ?

    A moins que j'ai suivi une mauvaise route ?

    Merci de m'apporter vos lumières expérimentées, car là, je patine depuis plusieurs jours pour comprendre la cohérence de tout ce petit monde !

    Merci !

  2. #2
    Membre émérite Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 16
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Par défaut
    il faut ajouter en conception un champ référence à ton TTable

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 28
    Par défaut
    Citation Envoyé par Yurck Voir le message
    il faut ajouter en conception un champ référence à ton TTable
    Merci pour la réponse !

    C'est tout ce que j'ai à faire ??

    Bon, je ne pas pas comment faire , ni ce que c'est sensé faire, mais je vais potasser le doc immédiatement et vous ferais part de mes avancées.

    Et juste avec ça, le DBNavigator ainsi que mes champs seront toujours pleinement fonctionnels ?

  4. #4
    Membre émérite Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 16
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Par défaut
    En conception
    Tu double click sur ton ttable tu obtiens ainsi la liste de ces champs (si tablename est renseigné).

    Puis clique droit sur cette liste et faire
    ajouter tous les champs
    puis
    ajouter nouveau champ
    clique sur radio bouton "référence"

    etc ...

    a +

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 28
    Par défaut
    Citation Envoyé par Yurck Voir le message
    En conception
    Tu double click sur ton ttable tu obtiens ainsi la liste de ces champs (si tablename est renseigné).

    Puis clique droit sur cette liste et faire
    ajouter tous les champs
    puis
    ajouter nouveau champ
    clique sur radio bouton "référence"

    etc ...

    a +
    Merci beaucoup !

    Mais comme le nom de la table n'est renseigné qu'à l'exécution, puis-je utiliser cette astuce tout de même ? Car en conception, la liste des champs, évidemment, est vide...

  6. #6
    Membre émérite Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 16
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Par défaut
    Bien sur tout ce qui est faisable en conception est faisable à l'exécution.

    Je te conseille pourtant de le faire en conception (sur une fiche de test) dans un premier temps pour te servir des informations contenu dans le dfm afin de t'aiguiller sur les propriétés à renseigner à l'exécution pour un bon fonctionnement

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

Discussions similaires

  1. [AC-2010] importer des données qui alimentent deux tables
    Par sardaucar dans le forum Modélisation
    Réponses: 2
    Dernier message: 20/10/2014, 14h34
  2. [MySQL] Intercallage et affichage avec des données issues de plusieurs tables SQL
    Par vinceom92 dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 02/03/2014, 14h37
  3. DataForm éditer des données liées dans deux tables.
    Par slyderkiller dans le forum Silverlight
    Réponses: 0
    Dernier message: 18/02/2011, 13h02
  4. Réponses: 2
    Dernier message: 30/04/2009, 12h46
  5. Réponses: 2
    Dernier message: 18/12/2002, 10h30

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