Importer des données via une table dans dbgrid
Version imprimable
Importer des données via une table dans dbgrid
Il faut :
Avoir un Tdatasource relié à la table (propriété Dataset).
Lié le TDBGrid au TDataSource (propiété Datasource)
Salut
J'ai deux tables ADO :
La table medicament est remplie avec des produitsCitation:
medicament(NoH,Medicament,Dosage,Qté,LibelleDetaille.......................................)
ordonnance detail(Code,Code_Ordonnance,Code_Medicament,Libelle_Medicament,Dose,Prise_Jour,Nombre_Jour,Periode,Quantite,Dosage................)
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.
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.
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
Bonsoir sergio
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 ...
Bonsoir Sergio
J'ai réglé le problème.
Code:
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;
Si le problème est réglé alors utiliser le bouton :resolu:
Toutefois, le code fourni et le manque d'explication de votre part ne va pas aider grand monde, dommage