Une question !
Excel permet d'ouvrir les fichier .dbf !
Pourquoi lorsque je crée une table, Excel ne sais pas l'ouvrir ?
Pourtant la table s'ouvre bien avec builder et autres ?
Dois je faire un module qui ecrit une table en format txt avec entre chaque champ la balise "/t" pour les tabulation ?
Merci d'avance
@+
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 void __fastcall TForm1::SaveClick(TObject *Sender) { SaveDialog1->FileName="Resultat.dbf"; if(SaveDialog1->Execute()) { CreateBD(ExtractFileName(SaveDialog1->FileName), ExtractFilePath(SaveDialog1->FileName)); } } //------------------------------------------------------------------------- void TForm1::CreateBD(AnsiString Name,AnsiString Path) { // En premier, description de la table qui doit être nommée Table->Active=false; Table->DatabaseName = Path; Table->TableType = ttDBase; // ou ttdefault; Table->TableName = Name; //---------------------------------------- if(!Table->Exists) { Table->Active = false; // Le composant Table ne doit pas être actif Table->FieldDefs->Clear(); // reset la table si qqch... TFieldDef *pNewDef; // pointeur sur la table // Ensuite description des champs // resultat est une dbgrid contenant des données via une requete sql // nombre de champ (titre) for(int x=0; x< resultat->FieldCount; x++) { // ajout d'une colone pNewDef = Table->FieldDefs->AddFieldDef(); // lecture des noms des colonnes de la dbgrid pNewDef->Name = resultat->Fields[x]->DisplayName; // lecture de type de la colonne de la dbgrid pNewDef->DataType = resultat->Fields[x]->DataType; // lecture de la taille de la colonnes de la dbgrid pNewDef->Size = resultat->Fields[x]->Size; } Table->CreateTable(); } //------------------------------------ // remplissage de la bd Table->Active = false; Table->DatabaseName = Path; Table->TableName = Name; Table->Active=true; // nombre d'enregistrement dans la dbgrid for (int y=0 ; y< resultat->Fields[0]->DataSet->RecordCount; y++) { // mode ajout , insertion et edition ; Consult->Append(); Consult->Insert(); Consult->Edit(); for (int x=0 ; x< resultat->FieldCount; x++) { // recherche le champ où il faut se positionner Table->FieldByName(resultat->Fields[x]->DisplayName)->Value = resultat->Fields[x]->AsString; OU // simplement Table->Fields[x]->Value = resultat->Fields[x]->AsString; } } //fermeture de la table Consult->Post(); Consult->Refresh(); } //----------------------------------------
@+ à Toutes et Tous
Partager