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