cs_kurt
Messages postés21Date d'inscriptiondimanche 22 décembre 2002StatutMembreDernière intervention16 février 2003
-
27 janv. 2003 à 00:41
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDerniè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...
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention 4 octobre 20067 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 :
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;
cs_kurt
Messages postés21Date d'inscriptiondimanche 22 décembre 2002StatutMembreDernière intervention16 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...
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention 4 octobre 20067 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?