Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-09-2012
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
Saludos
El problema de la consulta no actualizable es que me faltaba un parámetro en la conexión ADO, y parece ser un problema bastante global hehehehe. Asi quedo la cadena conexión:

Código:
Provider=MSDASQL.1;Persist Security Info=False;Mode=ReadWrite;Extended Properties="DBQ=C:\mi_archivo.xls;Driver={Microsoft Excel Driver (*.xls)};DriverId=790;MaxBufferSize=2048;PageTimeout=5;ReadOnly=0;"
para crear una hoja de Excel encontré este código que funciona perfectamente

Código:
/*
http://www.clubdelphi.com/foros/showthread.php?t=10866
*/
Variant Excel,Libro,Hoja,Celda;
  Excel = CreateOleObject("Excel.Application");
  Excel.OlePropertySet("Visible", true);
  Libro=Excel.OlePropertyGet("Workbooks");
  Libro.OleProcedure("Add");
  Hoja=Libro.OlePropertyGet("Item",1);
  Libro=Hoja.OlePropertyGet("Worksheets");
  Libro.OlePropertyGet("Item",1).OlePropertySet("Name","Pago periodo ");
  //Libro.OlePropertyGet("Item",2).OlePropertySet("Name","The red book-keeping ");
  for (int j=1;j<3;j++)
  {
	Hoja=Libro.OlePropertyGet("Item",j);
	for (int i=1;i<11;i++)
	{
	  Hoja.OlePropertyGet("Cells").OlePropertyGet("Item",i,1).OlePropertySet("Value",i);
	  Hoja.OlePropertyGet("Cells").OlePropertyGet("Item",i,2).OlePropertySet("Value",i*5);
	  Celda=Hoja.OlePropertyGet("Cells").OlePropertyGet("Item",i,2);
	  Celda.OlePropertyGet("Font").OlePropertySet("Color",clBlue);
	  Celda.OlePropertyGet("Font").OlePropertySet("Bold",true);
	  Celda.OlePropertyGet("Interior").OlePropertySet("ColorIndex",9-3*j);
	}
	Hoja.OlePropertyGet("Cells").OlePropertyGet("Item",11,1).OlePropertySet("Value","=SUM(A1:A10)");
	Hoja.OlePropertyGet("Cells").OlePropertyGet("Item",11,2).OlePropertySet("Value","=SUM(B1:B10)");
  }
  Excel.OlePropertySet("DisplayAlerts",false); //suppress the warning dialog on closing the server
  Excel.OlePropertyGet("Workbooks").OlePropertyGet("Item",1).OleProcedure("SaveAs","test.xls");
  Excel=Unassigned;
En el manejo del SQL desde el ADOQuery logre hacer consultas sin problemas

Código:
ADOQuery1->Close();
        ADOQuery1->SQL->Clear();
        ADOQuery1->SQL->Add("SELECT * FROM [reporte$];");
        ADOQuery1->Open();
Con el INSERT la cosa no fue muy difícil tampoco, solo agregar que si insertas los datos debes cerrar la conexión y después volver a abrirla de lo contrario te devuelve un error diciendo que no soporta multiples consultas o algo parecido.

Código:
ADOConnection1->Connected = true;

        ADOQuery1->Close();
        ADOQuery1->SQL->Clear();
        ADOQuery1->SQL->Add("INSERT INTO [reporte$] (nombre, apellidos, edad) VALUES ('"+Edit1->Text+"', '"+Edit2->Text+"', '"+Edit3->Text+"')");
        ADOQuery1->ExecSQL();

        ADOConnection1->Connected = false;
        ADOConnection1->Connected = true;

ADOQuery1->Close();
        ADOQuery1->SQL->Clear();
        ADOQuery1->SQL->Add("SELECT * FROM [reporte$];");
        ADOQuery1->Open();
Donde nombre, apellidos, edad son los encabezados de las columnas de la hoja de excel o sea los nombres de los campos y [reporte$] es el nombre de la hoja de calculo, los corchetes se pueden reemplazar por las comillas simples inclinadas (`) aunque microsoft prefiere los corchetes !!!

Espero que le sirva de ayuda a los próximos que lo intenten de todas formas pueden encontrar informacion de ayuda en el soporte que da microsoft y los ejemplos que pone para Visual Basic


Cómo usar ADO con datos de Excel desde Visual Basic o desde VBA
Cómo transferir datos desde un origen de datos ADO a Excel con ADO
Cómo transferir datos de un objeto Recordset de ADO a Excel con automatización
ExcelADO muestra cómo usar ADO para leer y escribir datos en libros de Excel
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________

Última edición por lmpadron fecha: 26-09-2012 a las 16:20:31.
Responder Con Cita
  #2  
Antiguo 26-09-2012
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
Ahora me queda un solo problema en el código que escribí, en el proyecto nuevo que cree funciona de lo mejor, pero cuando lo agrego al que estoy desarrollando de hace ya algún tiempo me devuelve un error

Código:
Variant Excel,Libro,Hoja,Celda;
  Excel = CreateOleObject("Excel.Application");
  Excel.OlePropertySet("Visible", true);
  Libro=Excel.OlePropertyGet("Workbooks");
 ............
este código esta en el post anterior
En la linea en negrita el compilador me dice que estoy llamando a una función que no existe o que esta indefinida
Código:
[C++ Error] Unit7.cpp(665): E2268 Call to undefined function 'CreateOleObject'
Si agrego
Código:
#pragma link "Excel_2K_SRVR"
No sucede nada, sigue con el error. La verdad ni idea de que pueda ser, si alguien sabe que es lo que me esta sucediendo pues le agradecería que diera un norte
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #3  
Antiguo 26-09-2012
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
Solucionado !!! solo necesitaba agregar la cabecera
Código:
#include <ComObj.hpp>
hehehehe
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #4  
Antiguo 28-09-2012
DanielMC DanielMC is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 14
Poder: 0
DanielMC Va por buen camino
Saludos Impadron
Puedes poner el codigo final de como te quedo tu codigo de exportar de un ADOQuery a Excel , serviria de mucha ayuda.
Saludos
Responder Con Cita
  #5  
Antiguo 28-09-2012
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
Cita:
Empezado por DanielMC Ver Mensaje
Saludos Impadron
Puedes poner el codigo final de como te quedo tu codigo de exportar de un ADOQuery a Excel , serviria de mucha ayuda.
Saludos

Fue el que puse donde explique que se podía hacer a través del OleCreateObject creando una hoja de excel y después anexándole los valores como hace el del ejemplo o a traves del ADO. De paso cree otro post con otra pregunta pero relacionado con el código del CreateObject() ya que tengo problemas al pasar los valores desde variables.

Saludos
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Exportar Excel a PDF BuenaOnda Varios 1 18-02-2011 10:51:17
Exportar a Excel jocey Servers 3 28-10-2008 22:33:28
Exportar a Excel jocey Varios 3 06-11-2007 16:15:23
Exportar a Excel Danielle Impresión 0 16-06-2006 18:04:55
Exportar a Excel pruz Varios 8 01-07-2004 15:47:37


La franja horaria es GMT +2. Ahora son las 14:58:44.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi