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

Вниз

Подключаюсь к БД Access+Excel с помощью Microsoft.Jet.OLEDB.4.0   Найти похожие ветки 

 
dimm22   (2004-05-27 16:06) [0]

Задача вытащить некоторые данные из mdb в лист Excel. Данные в файл Excel вношу с помощью AdoQuery с параметрами. Всё работает, но получаю в Excel текстовые данные, хотя хочу получить float (допустим "14.3 а не 14,3). Параметры присваиваю так adoqueryUpdate.Parameters.ParamByName("volume").Value:=adoquery1.FieldByName("volume").AsFloat; Сам параметр volume имеет тип ftFloat; Те     adoqueryUpdate.Parameters.ParamByName("volume").DataType:=ftFloat; А в файле внесённые данные получаются текстовыми :-( Может чего недопонимаю, это мой первый опыт в связке Microsoft.Jet.OLEDB.4.0+Excel.


 
DCoder   (2004-05-27 18:00) [1]

А каким образом ты вносишь данные в Ёксель?
Если как положено, через OleServer то указывай формат ячейки
я делаю так

case DataSet.Fields[i].DataType of
 ftString: ExcelApp.Selection.NumberFormat := "@";
 ftInteger,ftSmallInt: ExcelApp.Selection.NumberFormat := "0";
 ftFloat,ftBCD,ftCurrency: ExcelApp.Selection.NumberFormat := "0.00";
 ftDate: ExcelApp.Selection.NumberFormat := "dd-mm-yyyy;@";
else ExcelApp.Selection.NumberFormat := "@";
end;


 
dimm22   (2004-05-27 18:13) [2]


> А каким образом ты вносишь данные в Ёксель?

При помощи AdoQuery, вот его текст:

Update [Лист1$] set weight=:weight,
volume=:volume,
DiscountCode=:DiscountCode,
netstock=:netstock
where partno=:partno


 
DCoder   (2004-05-27 18:31) [3]

не стоит работать с экселем как с СУБД
он для этого не предназначен изначально.
Надежней всего и правильней работать с ним через OLE Server

uses OleServer,COMObj,OleCtnrs,ActiveX, variants;
.....
var ExcelApp, Workbook, WorkSheet: OLEVariant;
begin
 ExcelApp := CreateOleObject("Excel.Application");
 ExcelApp.SheetsInNewWorkbook := 1;
 Workbook := ExcelApp.WorkBooks.Add;
 WorkSheet := Workbook.Worksheets[1];
 WorkSheet.Activate;
 WorkSheet.PageSetup.Orientation := xlLandscape;
 WorkSheet.PageSetup.PaperSize := xlPaperA4;
 WorkSheet.Name:="от "+SellerName;
 WorkSheet.Cells[1,3]:="СЧЕТ-ФАКТУРА";
 WorkSheet.Cells[1,3].Font.Size:=16;
 WorkSheet.Cells[1,3].Font.Bold:=True;
и погнал: писать в лист, читать также со всеми атрибутами художественного оформления


 
dimm22   (2004-05-27 18:55) [4]


> DCoder   (27.05.04 18:31) [3]

Да уж больно медленно получается :-( Через OLEDB.4.0 шустрее будет. Но всё равно спасибо.



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

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

Наверх





Память: 0.45 MB
Время: 0.036 c
6-1082982090
WinLamka
2004-04-26 16:21
2004.06.20
мониторинг шаров.


14-1085691642
k@rt
2004-05-28 01:00
2004.06.20
Эксперты


14-1086268979
WebErr
2004-06-03 17:22
2004.06.20
Сканер штрих кода и его сообщения


14-1086252507
Igorek
2004-06-03 12:48
2004.06.20
Физический серийный номер винта


3-1085646663
Ale
2004-05-27 12:31
2004.06.20
TADOConnection





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский