импорт таблицы из Excel в Access

Ava1or
Дата: 05.05.2011 12:05:02
Всем привет!
Такая задачка:
Есть папка с несколькими xls.
Первый столбец ключевой, повторения не допускаются, первая строка является заголовком столбцов таблицы.
Как импортировать таблицы из Excel в Access средствами Delphi?
или хотя бы произвести импорт одной таблицы
Титов
Дата: 05.05.2011 12:10:07
Ava1or,

присваиваешь каждому значению и БД аксеса соответсвующую колонку экселя. импортировать будешь массивом или с помощью компонентов???
Ava1or
Дата: 05.05.2011 12:44:31
Титов,

можно подробнее о
присваиваешь каждому значению и БД аксеса соответсвующую колонку экселя

вот нашел код небольшой, может отсюда что взять можно
procedure TForm1.Button1Click(Sender: TObject);
var
Workbook, Sheet: variant;
excel:Variant;
st : String;
begin
Excel:=CreateOleObject('Excel.Application');
Excel.DisplayAlerts:=False;
Workbook:=Excel.Workbooks.Open('d:\1.xls'); 
Sheet:= WorkBook.ActiveSheet;
st:= Sheet.cells[1,3];   
Excel:= UnAssigned;
ADOTable1.Insert;
ADOTable1.FieldByName('Названия поля в таблице Ассеss').AsString:=st;
ADOTable1.Post;
end;
Соколинский Борис
Дата: 05.05.2011 12:55:53
Ava1or,
Тебе не кажется, что дельфи здесь лишнее звено?
Ava1or
Дата: 05.05.2011 13:02:39
Соколинский Борис,
нет, программа должна быть только на дельфи
или пусть даже будет какой либо скрипт, но запускается он через Delphi, но это уже край
RENaissance
Дата: 05.05.2011 13:22:23
Ava1or
Соколинский Борис,
нет, программа должна быть только на дельфи
или пусть даже будет какой либо скрипт, но запускается он через Delphi, но это уже край

Ядро Access'а умеет выполнять гетерогенные запросы.
Соколинский Борис
Дата: 05.05.2011 13:41:33
И в самом экселе это тоже можно сделать.
Титов
Дата: 05.05.2011 13:43:23
Ava1or
Титов,

можно подробнее о
присваиваешь каждому значению и БД аксеса соответсвующую колонку экселя

вот нашел код небольшой, может отсюда что взять можно
procedure TForm1.Button1Click(Sender: TObject);
var
Workbook, Sheet: variant;
excel:Variant;
st : String;
begin
Excel:=CreateOleObject('Excel.Application');
Excel.DisplayAlerts:=False;
Workbook:=Excel.Workbooks.Open('d:\1.xls'); 
Sheet:= WorkBook.ActiveSheet;
st:= Sheet.cells[1,3];   
Excel:= UnAssigned;
ADOTable1.Insert;
ADOTable1.FieldByName('Названия поля в таблице Ассеss').AsString:=st;
ADOTable1.Post;
end;


да примерно так
Anatoly Podgoretsky
Дата: 05.05.2011 14:40:45
Соколинский Борис
И в самом экселе это тоже можно сделать.

Можно но нельзя, лабораторную не засчитают.

А так и Акцесс и Ексель могут друг с другом общаться без всяких посредников.
Anatoly Podgoretsky
Дата: 05.05.2011 14:42:33
Титов
да примерно так

Так но неправильно. Эксель может быть источником данных, так что OLE лишнее