PDA

Ver la Versión Completa : Excel con ADOConnection


lduron
20-05-2010, 00:56:04
Hola Amigos!
Les pido de la manera más atenta su ayuda para resolver este problema...
Tengo que crear una aplicación en Delphi7 con el componente ADOConnection para hacer un vinculo
entre un archivo de excel y delphi, lo he hecho de la siguiente manera:

ADOCONNECTION
1)Inserto: ADOConnection1
2)En la propiedad:
ConnectionString: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Libro.xls;Extended Properties=Excel 8.0;
3)En la propiedad:
LoginPrompt: False

ADOTABLE
1)Inserto: ADOTable1
2)En la propiedad:
Connection: ADOConnection1
3)En la propiedad:
TableDirect: True
4)En la propiedad:
TableName: Hoja1$
5)En la propiedad:
Active: True

DATASOURCE
1)Inserto: DataSource1
2)En la propiedad:
DataSet: ADOTable1

DBGRID
1)Inserto: DBGrid1
2)En la propiedad:
DataSource: DataSource1
Construyo el projecto:
1)Project + Build All Projects

Todo bien hasta aquí, pero al momento de ejecutar el programa (F9) me manda el siguiente error...

http://localhost/error.jpg

Project Project1.exe raised exception class EOleException with message "El motor de base de datos
Microsoft Jet no puede abrir el archivo". Está abierto en modo exclusivo por otro usuario o bien necesita
permiso para ver sus datos". Process stopped. Use step or Run to continue.

De antemano agradezco su ayuda.

Saludos!

Neftali [Germán.Estévez]
20-05-2010, 10:23:37
¿No tendrás el excel abierto mientras haces las pruebas? Si es así cierra Excel y vuelve a probar.

El mensaje es claro. alguien más tiene el archivo abierto (y en modo exclusivo) mientras Delphi intenta abrilo.

Si tienes un pequeño proyecto de ejemplo súbelo y será más fácil de probarlo.

lduron
20-05-2010, 15:41:47
Tengo cerrado el excel y aún así me manda ese error. Me lo marca cuando lo quiero ejecutar desde delphi 7, pero cuando cierro delphi y ejecuto el archivo .exe (ExcelNvo_P.exe) lo ejecuta bien.

Les adjunto el programa.

Caro
20-05-2010, 15:42:58
Hola lduron, acabo de probar y me sale el mismo error (sin excel abierto), solo se ve el resultado en diseño y no en ejecución. De la forma que si me ha funcionado en ejecución, es conectando desde codigo y no así en diseño.


procedure TForm1.FormCreate(Sender: TObject);
begin
AdoConnection1.Connected := True;
AdoTable1.Open;
end;


Saluditos

roman
20-05-2010, 17:02:54
Seguramente es esto que dice Caro. Para abrirlo desde el IDE habría que asegurarse que el ADOConnection esté cerrado antes de ejecutar y abrir las tablas por código.

// Saludos

lduron
21-05-2010, 04:02:30
Acabo de hacer lo que me indicaron en este foro y listo, funciono a la perfección.

Les agradezco su gran ayuda a los chicos de este foro: principalmente a Neftali, Roman y en especial a Caro (ya que siempre he recibido su ayuda cuando la he necesitado).

Saludos!