verwendet comobj, Excel97, excel2000;
//Daten aus Excel schreiben, um auf die Bibliothek zuzugreifen
Verfahren ExcelToMdb(EXLfile:string;);
var
sheet,XLApp,workbook : Variante;
iRow,MaxRow:integer;
beginnen
screen.Cursor:=crHourGlass;
versuchen
//Objekt erstellen
XLApp:=createOleObject('Excel.application');
XLApp.displayAlerts:=false;
XLApp.ScreenUpdating:=false;
XLApp.WorkBooks.Add(EXLfile);
Arbeitsmappe := XLApp.workbooks[1];
sheet:=workbook.worksheets[1];
//sheet:=XLApp.WorkBooks[1].worksheets[1];
//Ermitteln Sie die maximale Anzahl an Zeilen maxRow
XLApp.ActiveCell.SpecialCells(xlLastCell).Select;
maxRow:=XLApp.ActiveCell.Row; //Maximale Anzahl von Zeilen
//Daten in die Access-Bibliothek schreiben
ADOTable1.open;
für iRow:=2 bis MaxRow tun
if sheet.cells[iRow,1]<>'' then //Das Schlüsselwort ist nicht leer
beginnen
ADOTable1.Append;
ADOTable1.fieldByName('ID').asInteger:=
strToInt(sheet.cells[iRow,1]);
ADOTable1.fieldByName('code').asString:=sheet.cells[iRow,2];//encoding
ADOTable1.fieldByName('name').asString:=sheet.cells[iRow,3];//name
ADOTable1.post;
Ende;
Endlich
wenn nicht VarIsEmpty(XLApp) then begin //Das Objekt freigeben
XLApp.displayAlerts:=false;
XLApp.ScreenUpdating:=true;
XLApp.quit;
Ende;
screen.Cursor:=crDefault;
Ende;
Ende;
//==================== Einige andere Attributmethoden===============//
curRow:=XLApp.ActiveCell.Row;//Anzahl der aktuellen Zeilen
XLApp.displayAlerts:=false;//Ob beim Ausführen von Makros Warnungen und Meldungen angezeigt werden sollen
XLApp.ScreenUpdating:=false; //Bildschirmaktualisierungsfunktion, Geschwindigkeit verbessern;
//Nach Abschluss des Vorgangs wird ScreenUpdating wieder auf True gesetzt
XLApp.run('macroName',params...)//Makro ausführen
workbook.save;
workBook.SaveAs(AFileName,xlNormal,'','',False,False);