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

Langage Delphi Discussion :

récupérer des données


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2011
    Messages : 90
    Points : 45
    Points
    45
    Par défaut récupérer des données
    salut à tous
    j'ai deux table
    table1(FACTURE )
    table2(FACTURE,DESIGNATION)
    et je voulais faire une recherche sur la deuxième table , pour afficher toutes les designations des produits qui correspond à un N°FACTURE que je saisie .
    et merci
    voila ce que j'ai essayé mais le code ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     while not adotable3.Eof do
                                  begin
                                  if combobox1.Text<>'' then
                                  begin
                                  option:=[lopartialkey];
                                  adotable3.Locate('FACTURE',combobox1.text,option);
                                  design:=Adotable3DESIGNATION.AsString;
                                  canvas.TextOut(1,i,design);
                                  i:=i+interligne;
                                  adotable3.Next;
                                  end ;

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2012
    Messages : 111
    Points : 171
    Points
    171
    Par défaut
    bon jour
    pas besoin de tout ce code : utilisez la relation maître-détail

    Utilisez MasterSource pour spécifier le nom du composant source de données dont la propriété DataSet identifie un ensemble de données à utiliser comme table maître dans la définition d'une relation détail-maître entre une table et une autre.
    La propriété MasterFields s'utilise après avoir affecté une valeur à la propriété MasterSource ou DataSource, pour spécifier le nom d'un ou de plusieurs champs utilisés pour établir une relation maître-détail entre un ensemble de données et l'ensemble de données maître. L'ensemble de données maître est spécifié en affectant sa source de données à la propriété MasterSource ou DataSource.
    a+

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    pour faire suite à la réponse de Tarekk73 vous pouvez également utiliser une Requête (ADOQuery) paramètrée (ce qui est mieux pour beaucoup de raisons que je ne détaillerais pas ici)
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DESIGNATION FROM Table2 WHERE FACTURE=:F
    la valeur du paramètre Facture sera alors, selon votre code , égal à combobox1.text

    P.S. Attention au type de données si FACTURE est un un champ texte , n'oubliez pas le Quotedstr(combobox1.text)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2011
    Messages : 90
    Points : 45
    Points
    45
    Par défaut
    je suis débutante en Delphi , et je pratique pas parfaitement l'utilisation de Maître-détails :/

    Pour la deuxième table j'ai la désignation sur plusieurs lignes pour la méme facture , et j'ai pu récupérer que la premiére désignation correspond au numéro de facture saisie

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Il n'y a aucune notion de relation maitre-détail dans la solution que j'ai proposé
    (sauf bien sur au niveau architecture de la table) .
    Au vue du code publié , j'ai simplement proposé d'utilisé une Query (plutôt qu'un table) comme la sélection des 'détails' de la facture se fait via une combobox , la valeur du combobox devient le paramètre .

    ce qui fait que , le même code ré-écrit donne
    (bien que je ne comprenne pas trop le pourquoi du canvas etc ....)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if combotext1.text<>'' then
    begin
     ADoQuery3.Close;
     ADoQuery3.Parameters.parambyName('F').Value:=Combobox1.Text;
     ADOQuery3.Open;
    while not AdoQuery3.Eof do
            begin
                 design:=AdoQuery3DESIGNATION.AsString;
                 canvas.TextOut(1,i,design);
                 i:=i+interligne;
                 adoQuery3.Next;
            end ;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. Récupérer des données dans excel
    Par alexia2 dans le forum MFC
    Réponses: 1
    Dernier message: 19/05/2005, 15h34
  2. Récupérer des données via le port usb
    Par matmuth dans le forum C++Builder
    Réponses: 12
    Dernier message: 11/05/2005, 16h34
  3. Comment récupérer des données de Outlook Express ?
    Par frenchsting dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 29/04/2005, 11h07
  4. Récupérer des données Excel vers Interbase ...
    Par Djedjeridoo dans le forum InterBase
    Réponses: 2
    Dernier message: 20/07/2003, 18h16
  5. cherche module ou langage pour récupérer des données audio..
    Par Ry_Yo dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 12/05/2003, 17h44

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