Главная страница
    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.031 c
3-1085494091
Tom
2004-05-25 18:08
2004.06.20
TADOQuery.LoadFromFile


1-1086616990
Gemini
2004-06-07 18:03
2004.06.20
А как программно раскрыть и закрыть узлы в TreeView?


4-1084433187
Nebiyev
2004-05-13 11:26
2004.06.20
Как програмно включить/выключит CapsLock, NumLock?


14-1086358053
_Начинающий_
2004-06-04 18:07
2004.06.20
Система наименования компонентов


14-1085922650
Юрий
2004-05-30 17:10
2004.06.20
Помогите программу дописать!





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