Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.19;
Скачать: CL | DM;

Вниз

ADO и Excel   Найти похожие ветки 

 
DmitryNekl ©   (2003-04-28 13:59) [0]

Помогите, пожалуйста!

Учусь работать с ADO. Хочу подсоединиться к книге Excel и перекачать оттуда инфу. Вроде понятно, как это сделать, кроме одного: у компонента ADOTable есть свойство TableName.
Что это в случае с Excel и где его взять?

Заранее спасибо! :)


 
sniknik ©   (2003-04-28 14:08) [1]

листы, вроде этого [Sheet1$].
книга - база.
листы - таблицы


 
KoluChi ©   (2003-04-28 14:30) [2]

db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp\temp.xls;Extended Properties=""Excel 8.0;""";
db.Open();
rs.ActiveConnection = db;
rs.CursorType = 3;
rs.LockType = 2;
rs.Source = "Select * from [Лист1$]";
rs.Open();
while rs.Eof()=0 do
//обрабатываем Recordset
rs.MoveNext();
end;
rs.Close();
db.Close();


 
DmitryNekl ©   (2003-04-28 14:31) [3]

А вот не работает... Соединение с файлом происходит, а в выпадающем списке в свойстве TableNAme - пусто :(


 
KoluChi ©   (2003-04-28 14:37) [4]

А ручками написать?
Советую пользоваться Query.


 
sniknik ©   (2003-04-28 14:39) [5]

А без кавычек? так к примеру
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Книга 1.xls;Extended Properties=Excel 5.0;Persist Security Info=False

и проверь что у тебя ADOTable с коннектом связан (ADOConnection).


 
sniknik ©   (2003-04-28 14:40) [6]

KoluChi © (28.04.03 14:37)
Query отстой, ADODataSet рулез.


 
DmitryNekl ©   (2003-04-28 14:42) [7]

2 KoluChi

А что такое db? Какой компонент?

Я что сделал... Разместил на форме ADOConnection и ADOTable. В ADOConnection подключился к файлу (ConnectionString) (причем успешно, тест проходит), ADOTable.Connection:=ADOConnection. ADOConnection.Connected:=True;

И потом смотрю ADOTable.TableNAme - пусто. При попытке ADOTable.Active:=True получаю: missing TableName property.

Попробовал все в виде кода:

ADOTable2.TableName:="catalog$";
ADOTable2.Active:=True;
ADOTable2.First;
For i:=0 to AdoTable2.RecordCount-1 do
begin
for j:=0 to ADOTable2.FieldCount-1 do
begin
Write(F, ADOTable2.Fields[j].AsString);
end;
Writeln(f,"");
AdoTable2.Next;
end;
ADOTable2.Active:=False;

И не работает... Кстати, а зачем после имени листа "$"?


 
sniknik ©   (2003-04-28 14:51) [8]

ADOTable2.TableName:="[catalog$]";

> И не работает... Кстати, а зачем после имени листа "$"?
а сделай ADOConnection.GetTableNames(); и посмотри что выдаст.


 
DmitryNekl ©   (2003-04-28 14:53) [9]

Всем спасибо, разобрался! Заработало :))))


 
KoluChi ©   (2003-04-28 14:58) [10]


> sniknik © (28.04.03 14:40)
> Query отстой, ADODataSet рулез.

Та же байда, только вид сбоку. Я не думаю, что в данном случае с Excel, нужно изменять данные. Все не Table.


 
sniknik ©   (2003-04-28 15:17) [11]

KoluChi © (28.04.03 14:58)
Та же байда, только вид сбоку.

не сбоку а вообще "довесок", что ADOTable что ADOQuery оба потомки от ADODataSet. причем с ограничениями свойств и только для "облегчения перехода" к "истинным" ценностям (ADODataSet, ADOCommand) :о)) (почти дословно из руководства).
и в данном случае (да и вообще), использование ADOQuery то же самое что и ADOTable (не по стилю работы конечно а по "устаревшести").
(не говоря уже о том что с Query совсем нельзя сравнивать)

а если понимаеш что это "Та же байда" зачем советовать?


 
KoluChi ©   (2003-04-28 16:15) [12]

Я же не настаиваю, а советаю. Разговор ни о чем...



Страницы: 1 вся ветка

Текущий архив: 2003.05.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
1-59776
Anton Tsvilikh
2003-05-06 18:08
2003.05.19
Позиция курсора


9-59519
Landgraph
2002-12-10 17:43
2003.05.19
glNewList(...) ... glEndList();


1-59728
Viktor
2003-05-05 18:55
2003.05.19
Cannot make a visible window modal.


3-59565
Belkova
2003-04-26 14:08
2003.05.19
ComboBox.Items.Add( Edit1.Text


14-59943
Ламка
2003-04-30 10:18
2003.05.19
Error install EhLib ?!