foxsonic Гость
|
Добавлено: Пн Дек 08 2003 17:13 Заголовок сообщения: Ошибка типа переменной при работе с Excel |
|
|
Вот такой вот программный код:
void __fastcall TForm3::BitBtn4Click(TObject *Sender)
{
//---------------------------------------
const int xlAlignCenter = -4108;
Variant app, ws, range;
int Row;
char sql_1[256];
char fld_1[40];
char val_1[40];
//---------------------------------------
app = CreateOleObject("Excel.Application");
app.OlePropertySet("Visible",true);
app.OlePropertySet("SheetsInNewWorkbook",1);
app.OlePropertyGet("Workbooks").OleProcedure("Add");
ws = app.OlePropertyGet("Worksheets").OlePropertyGet("Item",1);
//---------------------------------------
ws.OlePropertySet("Name", "Otchet");
//---------------------------------------
ws.OlePropertyGet("Columns").OlePropertyGet("Item",1).OlePropertySet("ColumnWidth",40);
ws.OlePropertyGet("Columns").OlePropertyGet("Item",1).OlePropertySet("ColumnWidth",40);
//---------------------------------------
ws.OlePropertyGet("Cells").OlePropertyGet("Item",2, 1).OlePropertySet("Value", "Имя");
ws.OlePropertyGet("Cells").OlePropertyGet("Item",2, 1).OlePropertySet("Value", "Дата");
range = ws.OlePropertyGet("Range","A2:В2");
range.OlePropertySet("HorizontalAlignment",xlAlignCenter);
//-------------------------------------
Row = 3;
strcpy(fld_1, ComboBox1->Text.c_str());
strcpy(val_1, ComboBox2->Text.c_str());
Query3->Close();
Query3->SQL->Clear();
sprintf(sql_1, "SELECT * FROM TABLE_1 WHERE %s = '%s'", fld_1, val_1);
Query3->SQL->Add(sql_1);
Query3->Open();
//-------------------------------------
while(!Query3->Eof)
{
ws.OlePropertyGet("Cells").OlePropertyGet("Item", Row, 1).OlePropertySet("Value", Query3->FieldByName("Имя")->AsString);
ws.OlePropertyGet("Cells").OlePropertyGet("Item", Row, 2).OlePropertySet("Value", Query3->FieldByName("Дата")->AsString);
Query3->Next();
Row++;
}
}
Компилируется нормально...Excel запускается но не выводит данные...
Да и ещё ругается что не правильно указан тип переменной
Какой именно переменной я не понимаю...)))
У меня Билдер 6
Заранее СПАСИБО |
|