Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];

Вниз

Импорт данных из Access в Excel. Unaccessible Value   Найти похожие ветки 

 
Phoenix9000 ©   (2005-05-19 14:05) [0]

Доброго времени суток, уважаемые мастера.

Я столкнулся с проблеммой и все никак не могу ее решить.

Программа импортирует данные из базы данных ACCESS в Excel.

Используется компонент dataset, в котором записан запрос.

При установки фильтра на данный компонент и дальнейшее импортирование данных в одном столбце набора данных стоят данные даты: например "01.01.1900". Все это работает. Но в одной строке таблицы в бд вместо нормального написания даты стоит значение "01.01.900". Пропущена единица в годе. В этом случае программа вылетает.

Фрагмент кода и значения переменных в момент вылета:

for i:=2 to a do
  begin
  for j:= 1 to b do
  begin

  if form1.adodataset3.Fields[j-1].Value <> Null then
  XLApp.Workbooks[1].WorkSheets[1].Cells[i,j]:=form1.adodataset3.Fields[j-1].Value;
  XLApp.Visible:=true;
  end;
  form1.adodataset3.Next;
end;

Значения до вылета в form1.adodataset3.Fields[j-1].Value - 01.01.1900

При следующей итерации цикла значение form1.adodataset3.Fields[j-1].Value - Inaccessible Value

Как раз сдесь программа вылетает.

Я учел что если значение не нулевое, тогда запись в ячейку Excel не идет. (if form1.adodataset3.Fields[j-1].Value <> Null then ...)

Но как можно "объяснить" программе, что если она натыкается на подобное значение, она должна его либо пропустить, либо записать в Excel как есть.

Откликнитесь, кто может.
приемлемы любые решения.

Заранее спасибо.


 
lexer ©   (2005-05-19 14:16) [1]

Долго пытался вникнуть в вопрос, никак не пойму, у тебя что в БД дата в чаре хранится?
Как вариант:
for i:=2 to a do
begin
 for j:= 1 to b do
 try
   if form1.adodataset3.Fields[j-1].Value <> Null then
   XLApp.Workbooks[1].WorkSheets[1].Cells[i,j]:=form1.adodataset3.Fields[j-1].Value;
   XLApp.Visible:=true;
 except
   {чтоб программа не вылетатла}
 end;
 form1.adodataset3.Next;
end;


 
Lexer ©   (2005-05-19 14:17) [2]

кстати, вынеси XLApp.Visible:=true после этих циклов


 
sniknik ©   (2005-05-19 14:19) [3]

> Программа импортирует данные из базы данных ACCESS в Excel.
можно просто
SELECT * INTO Table1 IN "D:\ExelBook.xls" "Excel 8.0;" FROM Table1
книга екселя (ExelBook.xls) может и не существовать, сама создастся.

запишет (должно) именно "как есть"


 
yk ©   (2005-05-19 14:19) [4]

Возможно проблема в типе ячеик в Excel


 
Phoenix9000 ©   (2005-05-19 14:31) [5]

Большое спасибо всем.

To Lexer

Я думал о том же, записать просто не мог. :)
а XLApp.Visible:=true я написал для того, чтобы было видно , на какой записи в Excel прогу клинит. В базе потом очень быстро найти можно где косяк.

to Sniknik

Этот способ опробую. Он работать быстрее бутет.

Еще раз всем большое спасибо!!!!!!!!!!



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

Форум: "Базы";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.039 c
14-1117606571
NightStranger
2005-06-01 10:16
2005.06.29
Следующий вопрос на засыпку


4-1115558084
BVV
2005-05-08 17:14
2005.06.29
EnableMenuItem


14-1117824070
Мучимый жаждой
2005-06-03 22:41
2005.06.29
На чем писали самый первый язык программирования?


1-1118330914
Новичёк_!
2005-06-09 19:28
2005.06.29
Групировка


3-1116480288
dreamse
2005-05-19 09:24
2005.06.29
Как узнать какие базы есть на сервере MSSQL ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский