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

 Delphi Discussion :

Affichage des données d'une Table lors de la saisie de sa Clé


Sujet :

Delphi

  1. #1
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 89
    Points : 49
    Points
    49
    Par défaut Affichage des données d'une Table lors de la saisie de sa Clé
    J'ai un masque de saisie avec plusieurs DBEdit en relation avec une Table 'employes' la table est déjà remplie je veux juste utiliser ses données.
    Ce que je veux obtenir:
    Quand je saisie le matricule (Clé de la Table1) dans le DBEdit1, les autres DBEdit se remplissent automatiquement.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    pour commencer il faudrait savoir si derrière les DBEdits c'est un composant TTable qui est relié (liaison directe avec la table donc) ou bien si c'est un DataSet récupéré après une requête ?
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  3. #3
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 89
    Points : 49
    Points
    49
    Par défaut
    Bonjour,
    Oui J'utilise DBEdit, TTable et DataSource

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Dans ce cas vous pouvez utiliser la méthode Locate sur le TTable dès que l'utilisateur a finit de remplir le matricule (sur le OnExit du DBEdit par exemple). Pensez également à utiliser DisableControls et EnableControls pendant la recherche pour éviter que l'utilisateur voit les enregistrements défiler.
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  5. #5
    Membre habitué Avatar de bs.box
    Inscrit en
    Mai 2008
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 174
    Points : 173
    Points
    173
    Par défaut Attention !!
    Je doit ajouter, que ce n'est pas faisable de faire entrez
    des clés directement dans des "TDBEdits" liés directement
    avec des "TTables", car il peut s'auto edités sans donner
    la main à l'utilisateur qui croiyer introdouir une valeur à rechercher..

    Efin;
    Eviter ceci pour la rentré des clés à rechercher en utilisant
    des simples masques de saisies [un TMaskEdit par exemple].

    a+
    ______________________________________________________________________
    Le sketch qui m'a marqué le plus! écoutez les programmeurs : Site de Yan Marchal

  6. #6
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 89
    Points : 49
    Points
    49
    Par défaut C'est vrai !
    J'essaye d'appliquer la méthode Locate sur un DBEdit mais elle effectue des changement sur la table au lieu de faire la recherche. Donc j'utilise un edit tout simplement.
    Maintenant le problème qui se pose c'est d'affecter les données trouvées à une nouvelle table. Je vais tenter une autre méthode.
    À suivre ....

  7. #7
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    quelque chose dans le genre sur un edit et non pas un dbedit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    table1.findkey([edit1.text])

  8. #8
    Membre habitué Avatar de bs.box
    Inscrit en
    Mai 2008
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 174
    Points : 173
    Points
    173
    Par défaut Salut..
    Citation Envoyé par kiminfor Voir le message
    Maintenant le problème qui se pose c'est d'affecter les données trouvées à une nouvelle table. Je vais tenter une autre méthode.
    À suivre ....
    Il nécessaire de savoir si la 2ième table où vous voulez enregistrer le tuple,
    reste en question!! si vous voulez migré ce tuple; veux dire que le schéma
    des deux table est unique; il faut méfier de la contrainte de violation de cléf.

    Donc, avant de faire ceci; un test d'existence suffira
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if Table2.FindKey([MaskEdit1.Text])
       then ShowMessage('Code Déja Existant!!')
       else begin
       Table2.Insert;
       Table2['Champs1']:=Table1['Champs1'];
       Table2['Champs2']:=Table1['Champs2'];
       Table2['Champs3']:=Table1['Champs3'];
       .
       ..
       ...
       Table2.Post;
             end
    Bon Courage...
    ______________________________________________________________________
    Le sketch qui m'a marqué le plus! écoutez les programmeurs : Site de Yan Marchal

  9. #9
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 89
    Points : 49
    Points
    49
    Par défaut
    Merci pour la réponse,
    Voici plus de détail pour mon problème
    J'ai refais la form, déposé à nouveau un composant ttable, datasource et des dbedit
    ensuite j'ai appliquer le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function DaysBetween(const ANow, AThen: TDateTime): Integer;
    begin
      Result := Abs(Trunc(AThen) - Trunc(ANow));
    end;
     
    procedure TForm1.DBEdit10Change(Sender: TObject);
    begin
    DBEdit17.Text:=IntToStr(DaysBetween(StrToDate(DBEdit9.Text),StrToDate(DBEdit7.Text)));
    end;
    DBEdit7: Date du départ
    DBEdit9: Date d'Arrivée
    Tous se passe normalement mais au moment d'enregistrer les données et de passer à l'enregistrement suivant (Table1.edit;Table1.Post) le message d'erreur s'affiche ''' n'est pas une date correcte
    ce signe '" veut dire que le champ est vide alors qu'il est rempli.

    Que devrai-je faire ?

  10. #10
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    salut, je crois que tu dois relire tout sur les BD, composant BD et tout, car la tu es mal partie, en plus tu pose mal les question, et tu ne fait que ta tete
    déjà, +bsdocuments+ ta donné quelque conseil, que tu n'a pas executé, alors, si tu veux vraiment que nous t'aide, alors, ecoute se qu'on te dis,
    regarde les examples données, avec delphi, sur ce site, ou autre.
    une chose, tu doit savoir que tout les composants BD (TDBEdit,TDBGrdi,...) ne sont là que pour refléter les données en cours de : (lectur ou modification)
    alors la lecture d'un champs depuis un TEDit ou autre est déconseilé, au moin pour un débutant
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  11. #11
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 89
    Points : 49
    Points
    49
    Par défaut
    Merci à Tous pour les réponses ainsi que pour les remarques
    Pour :
    Citation Envoyé par edam
    ... regarde les examples données ...
    J'ai cherché sur le net et J'avais posé une question sur le forum :
    http://www.developpez.net/forums/sho...d.php?t=513848
    J'ai pensé qu'il été possible d'utiliser le contenu des DBEdit directement, MAIS NON c'est FAUX ou peut être qu'il y a un autre moyen de les utilisés.

    La solution est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DBEdit17.Text:=IntToStr(DaysBetween(StrToDate(Table1['DateDepart']),StrToDate(Table1['DateArrivee'])));
    end;
    Merci mille fois ...

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

Discussions similaires

  1. Affichage des données d'une table MySQL dans un ListView selon l'id
    Par loviso dans le forum Composants graphiques
    Réponses: 0
    Dernier message: 30/07/2012, 16h28
  2. Réponses: 0
    Dernier message: 24/04/2010, 21h28
  3. affichage des données d'une table mysql
    Par chrisl0 dans le forum Langage
    Réponses: 1
    Dernier message: 05/02/2009, 18h21
  4. [MySQL] affichage des données d'une table
    Par debutante84 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/12/2007, 10h34
  5. Réponses: 2
    Dernier message: 15/12/2006, 10h31

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