Текущий архив: 2004.06.20;
Скачать: CL | DM;
Вниз
Подключаюсь к БД 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;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.027 c