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 18-09-2012
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.340
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
El Tablename si no recuerdo mal, era el nombre de la hoja.
Si haces una búsqueda en los foros por "ADO* Excel" sin comillas salen bastantes temas al respecto.


Incluso en el FTP tienes varios ejemplos.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #2  
Antiguo 19-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
no me deja me devuelve un error esta ves en el FROM parece de la sentencia SQL. Con el ADOQuery consulto bien pero no me deja guardar usando el DBNavigator me dice:
Código:
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EOleException with message '[Microsoft][Controlador ODBC Excel] La operación debe usar una consulta actualizable'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------
__________________
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 20-09-2012
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.340
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Puedes poner la consulta que utilizas para cargar datos y para guardarlos?
Piensa que si realizas una consulta que involucra varias tablas, luego no puedes editar esos datos directamente (consulta no actualizable) porque no sabría qué datos meter en cada tabla.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
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
  #5  
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
  #6  
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
  #7  
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
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 12:34:14.


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