Bonjour,
Existe t'il un composant pour changer automatiquement une table d'une base de données pour afficher mes données dans un DBGrid, ou faut-il le faire uniquement en code ?
Merci d'avance.
Bonjour,
Existe t'il un composant pour changer automatiquement une table d'une base de données pour afficher mes données dans un DBGrid, ou faut-il le faire uniquement en code ?
Merci d'avance.
Regarde peut etre avec un DBComboBox, sinon faut le faire en code![]()
j'ai regardé DBComboBox mais cela fonction uniquement sur la valeur du champ paramétré dans TDBComboBox:ataField de la ligne sélctionnée de la table.
Allez; un petit bout de code pour toi...avec deux combos un pour la base de données et un autre pour la table contenue:
Activation de la page ou est le Grid et affectation des composants:
Affectation des noms de tables dans la combo, une fois que la base retenu est choisie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 void __fastcall TMainForm::AdvTabSheet5Show(TObject *Sender) { ListeBaseComboBox->ItemIndex = -1; //efface les sélection si existantes ListeTableComboBox->ItemIndex = -1; StarDataModule->TestDataSet->Active = false; //désactive vue éventuelle AdminGrid->DataSource = StarDataModule->TestDataSource; AdminNavigator->DataSource = StarDataModule->TestDataSource; GridFindDialog->Grid = AdminGrid; // recherche sur cette grille ExcelIO->AdvStringGrid = AdminGrid; // export sur cette grille }
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
21
22
23
24
25
26
27
28
29 void __fastcall TMainForm::ListeBaseComboBoxChange(TObject *Sender) { StarDataModule->TestDataSet->Active = false; StarDataModule->TestDataSet->Filtered = false; ListeTableComboBox->Items->Clear(); //efface si liste de choix existante switch (ListeBaseComboBox->ItemIndex) { case 0: StarDataModule->TestDataSet->Connection = StarDataModule->ParamConnection; // base centrale StarDataModule->ParamConnection->GetTableNames(ListeTableComboBox->Items , false); // charge le nom des tables (et requêtes) break; case 1: StarDataModule->TestDataSet->Connection = StarDataModule->LocalConnection; //Base locale StarDataModule->LocalConnection->GetTableNames(ListeTableComboBox->Items , false); // charge le nom des tables (et requêtes) break; case 2: StarDataModule->TestDataSet->Connection = StarDataModule->DataConnection; // base de données StarDataModule->DataConnection->GetTableNames(ListeTableComboBox->Items , false); // charge le nom des tables (et requêtes) break; } for(int i = 0; i < ListeTableComboBox->Items->Count; i++){ // afin de supprimer table et Requète != Txx if(ListeTableComboBox->Items->Strings[i][1] != 'T'){ ListeTableComboBox->Items->Delete(i); i--; } } }
Partager