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 :

Importer des données via une table dans DBGrid


Sujet :

Bases de données Delphi

  1. #1
    Nouveau Candidat au Club Avatar de divil15
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 45
    Points : 0
    Points
    0
    Par défaut Importer des données via une table dans DBGrid
    Importer des données via une table dans dbgrid

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    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 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Il faut :
    Avoir un Tdatasource relié à la table (propriété Dataset).
    Lié le TDBGrid au TDataSource (propiété Datasource)
    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

  3. #3
    Nouveau Candidat au Club Avatar de divil15
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 45
    Points : 0
    Points
    0
    Par défaut
    Salut

    J'ai deux tables ADO :
    medicament(NoH,Medicament,Dosage,Qté,LibelleDetaille.......................................)
    ordonnance detail(Code,Code_Ordonnance,Code_Medicament,Libelle_Medicament,Dose,Prise_Jour,Nombre_Jour,Periode,Quantite,Dosage................)
    La table medicament est remplie avec des produits
    Ce que je veux, quand je fais la recherche d'un produit dans la table medicament, c'est que cela s'affiche directement dans la table ordonnance detail.
    J'espère que tu m'as compris.
    Aidez-moi .
    Et merci d'avance.

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Il suffit de lire le fichier avec un TFileStream ou TXMLDocument ou TJSonObjet puisque l'on a aucune information du type du fichier à importer

    Ensuite c'est juste du SQL

    Un exemple de fichier et votre premier code serait bienvenu, seul vous pouvez fournir un code pour que l'on puisse avancer.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Tout cela n'est qu'une simple relation Maitre Détail, il y a une méthode
    - avec plusieurs DBGrid en utilisant le MasterSource de la seconde table
    - avec une Combo et un Filter
    - avec une Combo et un SQL

    Tout dépend vos habitudes de développement

    Nous fournir un début de code qui pose problème pour agencer vos composants TTable/TQuery + TDataSource + TDBGrid
    Ensuite, le TBatchMove peut être utilisé pour importer un fichier texte très simple type fichier Tabulé


    TTable, TADOTable, T???Table, on n'a pas l'information du provider associé à ACCESS
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Nouveau Candidat au Club Avatar de divil15
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 45
    Points : 0
    Points
    0
    Par défaut
    Bonsoir sergio
    Images attachées Images attachées  

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    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 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Vous vous trompez de hiérarchie.

    La grille ordonnance devrait être en premier, la grille médicament AMHA non nécessaire devrait être remplacé par un cadre contenant un dblookupcombobox pour la recherche du médicament, une zone de saisie pour la posologie ...
    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

  8. #8
    Nouveau Candidat au Club Avatar de divil15
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 45
    Points : 0
    Points
    0
    Par défaut Insérer dans dbgrid
    Bonsoir Sergio

    J'ai réglé le problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    begin
                           Tbl_Medicaments.Locate('LibelleDetaille',AdvListEditor2.Values[i].DisplayText,[]);
     
                                AdoTableOrdonnance.Insert;
                                AdoTableOrdonnance.FieldByName('Code_Medicament').AsInteger:=Tbl_MedicamentsNoH.Value;
                                AdoTableOrdonnance.FieldByName('Libelle_Medicament').AsString:=Tbl_MedicamentsMedicament.Value;
                                AdoTableOrdonnance.FieldByName('Code_DCI').AsString:=Tbl_MedicamentsDCI.Value;
                                AdoTableOrdonnance.FieldByName('Libelle_DCI').AsString:=Tbl_MedicamentsDCIcomplet.Value;
                                AdoTableOrdonnance.FieldByName('Dose').AsString:=XDBGrid5.Columns[2].PickList.Strings[0];
                                AdoTableOrdonnance.FieldByName('Prise_Jour').AsString:=XDBGrid5.Columns[3].PickList.Strings[0];
                                AdoTableOrdonnance.FieldByName('Nombre_Jour').AsInteger:=StrToInt(XDBGrid5.Columns[4].PickList.Strings[0]);
                                AdoTableOrdonnance.FieldByName('Periode').AsString:=XDBGrid5.Columns[5].PickList.Strings[0];
                                AdoTableOrdonnance.FieldByName('Quand').AsString:=XDBGrid5.Columns[6].PickList.Strings[0];
                                AdoTableOrdonnance.FieldByName('Quantite').AsInteger:=1;
                                AdoTableOrdonnance.FieldByName('Forme').AsString:=Tbl_MedicamentsForme.Value;
                                AdoTableOrdonnance.FieldByName('Dosage').AsString:=Tbl_MedicamentsDosage.Value;
                                AdoTableOrdonnance.FieldByName('Emballage').AsString:=Tbl_MedicamentsEmballage.Value;
                                AdoTableOrdonnance.FieldByName('Unite').AsString:=Tbl_MedicamentsUnit.Value;
                                AdoTableOrdonnance.Post;
      end;

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    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 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Si le problème est réglé alors utiliser le bouton
    Toutefois, le code fourni et le manque d'explication de votre part ne va pas aider grand monde, dommage
    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

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/06/2020, 16h51
  2. Importer des données d'une table Access dans Excel
    Par moussss86 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2013, 10h30
  3. Importer des données d'une table dans une autre
    Par Cheeper dans le forum Requêtes
    Réponses: 1
    Dernier message: 11/02/2008, 12h58
  4. recopi des données d'une table dans une autre
    Par moicats dans le forum Access
    Réponses: 5
    Dernier message: 06/04/2006, 21h12
  5. concatenation des données d'une table dans une autre
    Par Fabby69 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 04/10/2004, 11h38

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