Главная страница
    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.029 c
9-1077435911
Ser_00
2004-02-22 10:45
2004.06.20
FlameMaker


3-1085570999
Evyshka
2004-05-26 15:29
2004.06.20
Insufficient disk spase


14-1086172969
YurikGL
2004-06-02 14:42
2004.06.20
Ссылочка попалась


4-1084627743
VeTaL_Programmer
2004-05-15 17:29
2004.06.20
Запись в реестр бинарного значения


6-1083228133
Srg
2004-04-29 12:42
2004.06.20
idTCPServer





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