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

Вниз

экспорт из IBQuery в Excel   Найти похожие ветки 

 
merko$ ©   (2007-03-05 09:02) [0]

Уважаемые Мастера, поднимаю опять старую тему т.к. с вопросом не разобрался. Подскажите пожалуйста как правильно сделать цикл, чтоб результат запроса IBQuery экспортировался весь в Excel, (т.е. все записи), а не только первая запись?
Заранее благодарю!

Пробовал сделать так но не получается
var
i:integer;
begin
with IBQuery1 do while not Eof do  
ExcelWorksheet1.Cells.Item[2+i,3].Value:=fOtRem.IBQuery1.FieldValues["DATA_REM"];
Next; Inc(i);


 
ЮЮ ©   (2007-03-05 09:24) [1]

Что именно не получается? Нормально оформит код? Избавиться от сообщений компилятора, обнаруживших кучу "логических" ошибок? Понять почему всё зависло? Или что ещё?


 
merko$ ©   (2007-03-05 09:32) [2]

Если я пишу
ExcelWorksheet1.Cells.Item[2+i,3].Value:=fOtRem.IBQuery1.FieldValues["DATA_REM"];
то выводится текущая запись.
А мне нужно чтобы вываливались все записи из IBQuery в Excel, но ниже приведенный код не работает.
var
i:integer;
begin
with IBQuery1 do while not Eof do  
ExcelWorksheet1.Cells.Item[2+i,3].Value:=fOtRem.IBQuery1.FieldValues["DATA_REM"];
Next; Inc(i);


 
ЮЮ ©   (2007-03-05 09:39) [3]

у тебя вообще нет ни выхода из цикла, не перемещения по датасету:

with IBQuery1 do
 while not Eof do begin
   ExcelWorksheet1.Cells.Item[2+i,3].Value:=fOtRem.IBQuery1.FieldValues["DATA_REM"];
   Next;
   Inc(i);
 end;


 
merko$ ©   (2007-03-05 09:54) [4]

Все равно не работает. Открывается Excel и виснет и Excel и приложение


 
merko$ ©   (2007-03-05 09:57) [5]

Delphi пишет:
[Warning] Unit16.pas(259): Variable "i" might not have been initialized


 
ЮЮ ©   (2007-03-05 10:06) [6]

Все равно не работает. Открывается Excel и виснет и Excel и приложение
Именно так должно было вести себя приложение с твоим кодом, а говоришь - работало :)

Delphi пишет:
[Warning] Unit16.pas(259): Variable "i" might not have been initialized

И я о том же - Delphi пишет, а ты не реагируешь. Следует установить начальное значение перед использованием.

Приведи свой код целиком. И с заголовеом метода (процедуры)


 
merko$ ©   (2007-03-05 10:09) [7]

procedure TfOtRem.Button2Click(Sender: TObject);
var
FileName:OleVariant;
i:integer;
begin
with IBQuery1 do
while not Eof do begin
  ExcelWorksheet1.Cells.Item[2+i,3].Value:=fOtRem.IBQuery1.FieldValues["DATA_REM"];
  Next;
  Inc(i);
end;

FileName:=OpenDialog1.FileName;
ExcelApplication1.Connect;
if ExcelApplication1.Workbooks.Count=0 then
ExcelApplication1.Workbooks.Add(FileName,0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.ActiveSheet as ExcelWorkSheet);
ExcelApplication1.Visible[0]:=true;

ExcelWorksheet1.Disconnect;
ExcelWorkbook1.Disconnect;
ExcelApplication1.Disconnect;
end;

end.


 
ЮЮ ©   (2007-03-05 10:38) [8]

Это, похоже, вопрос не по БД, а по серверу Excel. (боюсь, что и безо всякого вывода из БД должно всё повиснуть с таким количеством ConnectTo/ConnectTo :). Сорри, здесь я не спец и этим не пользуюсь.


 
merko$ ©   (2007-03-05 10:46) [9]

Но если я таким же образом вывожу данные из IBTable, то все работает


 
Krants   (2007-03-05 13:04) [10]

Почему ConnectTo, Disconnect?, а где стандартные Create, Close?
И как может экспорт происходить еще не в созданный файл?


 
YurikGL ©   (2007-03-05 20:00) [11]

Пример экспорта в Excel через OLE, XML, ADO и CVS.
http://kladovka.net.ru/index.cgi?pid=board&rid=363



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

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

Наверх




Память: 0.49 MB
Время: 0.042 c
1-1174914421
Inna_Z
2007-03-26 17:07
2007.05.20
Почему может не работать Office 2003 Через OLE


4-1166529534
cktor
2006-12-19 14:58
2007.05.20
IExplorer


2-1177655329
Ega23
2007-04-27 10:28
2007.05.20
TInterfacedList.Delete - произойдёт ли вызов _Release


3-1173160550
Sansy
2007-03-06 08:55
2007.05.20
Сохранение отчёта в поток для FastReport


2-1178200691
RomanLN
2007-05-03 17:58
2007.05.20
Как присвоить цвет Edit программно