[Eport/import]comment expo/import une base IB

cs_kurt Messages postés 21 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 16 février 2003 - 27 janv. 2003 à 00:41
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 - 28 janv. 2003 à 13:14
Voilà, j'aimerais exporter ET importer ma base IB vers excel ou tout autre programme en faite, mais je ne sais pas comment faire.
Pouvez vous me dire comment faire, ou me donenr le nom de composant à utiliser.

Merci d'avance

Connaissez vous le nom d'un composant qui marche, car j'ai été sur toory, mais la plupart sont soit pyant, soit trop vieux...

Merci

3 réponses

jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
27 janv. 2003 à 13:33
Salut,

J ai eu le meme probleme que toi mais pour une base paradox ne trouvant pas de composant j ai crée cette routine. Je pense que cela devrait t'aiguiller déja. Sinon pour ma part je suis tres interessé sur les bases IB j aimerais avoir plus de renseignements sur comment les créer les gérer ect.... Si tu peux m'aider ca serait super cool.

Voici l'exportation d'une base paradox vers excel :

procedure ExtractionExcel(Table : TTable;OngletName : String);

var
I,J : Integer;
OleApplication : Variant;
OleWorkBook : Variant;
TypeChamp,NomChamp : String;
Cond : Boolean;

function ColExcel(Col : Integer) : ShortString;
begin

If Col > 26 then
begin
Result := Chr(64 + Trunc(Col/26)) + Chr(64 + (Col - (26 * Trunc(Col/26))));
end
else
Result := Chr(64 + Col);

Result := Result;
end;

begin

{Connection à excel}
Try
{On bloque l'affichage}
Table.DisableControls;
{On lance excel}
// création du lien OLE pour la classe référencé par Excel dans la base de registre "Excel.Application"
OleApplication := CreateOleObject('Excel.Application');
{On ouvre le fichier voulu}
OleWorkBook := OleApplication.Workbooks.Add;
{On sélectionne l'onglet dans lequel on va entrer les données}
OleWorkBook.Worksheets.Item['Feuil1'].Activate;
{On rentre les données dans les cellules}

For I:=1 to Table.FieldCount-1 do
begin
{Recherche du type de champ}
case Table.Fields.Fields[I].DataType of
FtString : If Table.Fields.Fields[I].Size = 16 then TypeChamp := 's'
else TypeChamp := 's' + IntToStr(Table.Fields.Fields[I].Size);
FtFloat : TypeChamp := 'f';
FtInteger : TypeChamp := 'i';
end;

{Recherche si ce champ est indexé}
If Table.Fields.Fields[I].IsIndexField then TypeChamp := UpperCase(TypeChamp);

OleApplication.Cells[1,I].Formula := TypeChamp;

{Récupération du nom de ce champ}
NomChamp := Copy(Table.Fields.Fields[I].FieldName,Length(TypeChamp)+2,30);
OleApplication.Cells[2,I].Formula := NomChamp;
{Récupération du contenu de ces champs}
Cond := Table.FindFirst;
J := 3;

While Cond do
begin
OleApplication.Cells[J,I].Formula := Table.Fields.Fields[I].AsString;
Cond := Table.FindNext;
Inc(J);
end;
end;

{On colorie les deux premieres ligne en jaune}
OleApplication.Range['A1:'+ColExcel(I-1)+'2'].Interior.ColorIndex := 6;
{On applique les filtres auto}
OleApplication.Range['A2:'+ColExcel(I-1)+IntToStr(J)].AutoFilter;
{On ajuste les colonnes automatiquement}
OleApplication.Range['A1:'+ColExcel(I-1)+IntToStr(J)].Columns.AutoFit;
{On renomme l'onglet}
OleWorkBook.Worksheets.Item['Feuil1'].Name := OngletName;
{On désactive les messages d'excel}
OleApplication.DisplayAlerts := False;
{On Réactive les messages d'excel}
OleApplication.DisplayAlerts := True;
Finally
{On rend excel visible}
OleApplication.Visible:=True;
{On réactive les mise à jour de la base}
Table.EnableControls;
{On ferme le lien ole}
//OleApplication.Quit;
{On confirme la fin de l'extraction}
ShowMessage('Extraction de la base ' + OngletName + ' terminée.');
end;
end;
0
cs_kurt Messages postés 21 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 16 février 2003
28 janv. 2003 à 12:35
ok, merci
en fait pour utilsier une base IB, tu utilise le compo IBdatabase, Ibtransaction et datasource et dataset, et puis tu les relie tous entre eux,
une petit DBgrid et le tour est joué ;-)
si t'as d'autres questions...
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
28 janv. 2003 à 13:14
Salut,

Merci pour ces precieux renseignements. Aurais tu par hasard un exemple de programme utilisant des bases Ib. Et sais tu entre des bases Ib ou paradox laquelle est la meilleure?

Merci,
JMP.
0
Rejoignez-nous