Jump to content


Photo

consultas a base de datos excel

excel

  • Please log in to reply
19 replies to this topic

#1 the walrus

the walrus

    Advanced Member

  • Miembros
  • PipPipPip
  • 60 posts

Posted 31 July 2018 - 05:27 PM

hola a todos, estoy haciendo un proyecto donde utilizo componentes ADO y una planilla excel como base de datos.

cuando intento escribir una consulta a un query me aparece este error "instruccion sql  no valida se esperaba un delete ,insert procedure, select o update"

la consulta que ejecuto es la siguiente : 

  •  "SELECT * FROM " & Hoja1$

  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 01 August 2018 - 08:53 AM

¿Tiene la clausula HDR=Yes en tu connectionString?, las consultas deben ser de ésta forma:


sql
  1. SELECT [Campo1], [Campo2] FROM [Hoja1$] WHERE [Campo1] > 0

Saludos.


  • 1

#3 the walrus

the walrus

    Advanced Member

  • Miembros
  • PipPipPip
  • 60 posts

Posted 01 August 2018 - 05:00 PM

¿Tiene la clausula HDR=Yes en tu connectionString?, las consultas deben ser de ésta forma:


sql
  1. SELECT [Campo1], [Campo2] FROM [Hoja1$] WHERE [Campo1] > 0

Saludos.

hola,  como hago para añiadirla me podrías dar un ejemplo gracias saludos 


  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 02 August 2018 - 11:12 AM

HDR=Yes indica que la primera línea de la hoja son los nombres de la columna, sólo agregalo en tu connectionString de ADO ";HDR=yes;"


  • 0

#5 the walrus

the walrus

    Advanced Member

  • Miembros
  • PipPipPip
  • 60 posts

Posted 02 August 2018 - 04:57 PM

HDR=Yes indica que la primera línea de la hoja son los nombres de la columna, sólo agregalo en tu connectionString de ADO ";HDR=yes;"

añadí la clausula pero ahora me dice que "corchetes no validos  'Hoja1$' "


  • 0

#6 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 03 August 2018 - 07:05 AM

El error es obvio, quítale los corchetes.


  • 0

#7 the walrus

the walrus

    Advanced Member

  • Miembros
  • PipPipPip
  • 60 posts

Posted 03 August 2018 - 01:09 PM

El error es obvio, quítale los corchetes.

lo hice pero me aparce un nuevo error no se pudo encontrar el archivo ISAM instalable


  • 0

#8 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 03 August 2018 - 03:36 PM

Eso es problema de tu cadena de conección, que aún no lo has colocado, si utilizas el motor de datos Microsoft Jet 4.0, asgúrate de colocar en tu cadena de conección la clausula ";Extended Properties=Excel 8.0;".

 

Saludos.


  • 0

#9 the walrus

the walrus

    Advanced Member

  • Miembros
  • PipPipPip
  • 60 posts

Posted 03 August 2018 - 06:07 PM

Eso es problema de tu cadena de conección, que aún no lo has colocado, si utilizas el motor de datos Microsoft Jet 4.0, asgúrate de colocar en tu cadena de conección la clausula ";Extended Properties=Excel 8.0;".

 

Saludos.

ahora me aparece error se sintaxis en la clausula from


  • 0

#10 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6295 posts
  • LocationArgentina

Posted 03 August 2018 - 09:34 PM

The Walrus, coméntanos como tienes definida tu cadena de conexión, o bien, en su defecto si usas un componente de acceso a base de datos, las propiedades y su configuración.

Y sería útil que nos des un vistazo más completo de como tienes la consulta.

 

No basta con decir ADO, ADO es la suite. Efectivamente para conectarse a Excel vas a usar ADO, pero en cuanto al componente utilizado y su configuración tanto en la conexión como también para definir la consulta en el ADoQuery no sabemos nada. Se más descriptivo. Sin ver lo que estás haciendo, va a ser difícil apreciar donde están los errores.

 

Saludos,


  • 0

#11 the walrus

the walrus

    Advanced Member

  • Miembros
  • PipPipPip
  • 60 posts

Posted 04 August 2018 - 04:32 PM

The Walrus, coméntanos como tienes definida tu cadena de conexión, o bien, en su defecto si usas un componente de acceso a base de datos, las propiedades y su configuración.

Y sería útil que nos des un vistazo más completo de como tienes la consulta.

 

No basta con decir ADO, ADO es la suite. Efectivamente para conectarse a Excel vas a usar ADO, pero en cuanto al componente utilizado y su configuración tanto en la conexión como también para definir la consulta en el ADoQuery no sabemos nada. Se más descriptivo. Sin ver lo que estás haciendo, va a ser difícil apreciar donde están los errores.

 

Saludos,

hola delphius, mi cadena de conexion es esta

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\archivos\base_de_datos.xls;Extended Properties=Excel 8.0;Persist Security Info=False;HDR=yes;Excel 8.0;

y en el adoquery tengo esta consulta 

 

SELECT * FROM   Hoja1$


  • 0

#12 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 05 August 2018 - 07:21 AM

Excel 8.0 está dos veces, elimina la última.

 

Saludos.


  • 0

#13 the walrus

the walrus

    Advanced Member

  • Miembros
  • PipPipPip
  • 60 posts

Posted 05 August 2018 - 04:16 PM

Excel 8.0 está dos veces, elimina la última.

 

Saludos.

si; ya lo saque pero el error sigue no se pudo encontrar el archivo ISAM instalable


  • 0

#14 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14460 posts
  • LocationMéxico

Posted 05 August 2018 - 10:19 PM

si; ya lo saque pero el error sigue no se pudo encontrar el archivo ISAM instalable

 

Tengo un programa donde abro un archivo de excel y selecciono el libro que deseo ver. La cadena de conexión la tengo de ésta forma:


delphi
  1. procedure TForm1.ADOConnection1BeforeConnect(Sender: TObject);
  2. begin
  3. ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;'+
  4. 'Data Source='+Archivo+
  5. ';Extended Properties=Excel 8.0;'+
  6. 'Persist Security Info=False';
  7. end;

Adjunto una imagen del pequeño programa.

 

Saludos

Attached Files


  • 0

#15 the walrus

the walrus

    Advanced Member

  • Miembros
  • PipPipPip
  • 60 posts

Posted 06 August 2018 - 04:22 PM

Tengo un programa donde abro un archivo de excel y selecciono el libro que deseo ver. La cadena de conexión la tengo de ésta forma:


delphi
  1. procedure TForm1.ADOConnection1BeforeConnect(Sender: TObject);
  2. begin
  3. ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;'+
  4. 'Data Source='+Archivo+
  5. ';Extended Properties=Excel 8.0;'+
  6. 'Persist Security Info=False';
  7. end;

Adjunto una imagen del pequeño programa.

 

Saludos

hola egostar, mi intención es mostrar una hoja por formulario  y en uno mostrar las tres hojas en un formulario agrupados por fecha 

saludos


  • 0

#16 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14460 posts
  • LocationMéxico

Posted 07 August 2018 - 07:28 AM

hola egostar, mi intención es mostrar una hoja por formulario  y en uno mostrar las tres hojas en un formulario agrupados por fecha 
saludos

 
Bueno, en ese caso primero lograr la conexión, y una vez salvado ese escaño hacer el query dependerá que las tres hojas tengan los mismos campos y los mismos tipos, y si se tiene eso, haces un query con la clausula UNION.
 
 

sql
  1. SELECT 
  2.    HOJA1.FECHA,
  3.    HOJA1.CAMPO2,
  4.    HOJA1.CAMPO3
  5. FROM HOJA1
  6.  
  7. UNION
  8.  
  9. SELECT
  10.    HOJA2.FECHA,
  11.    HOJA2.CAMPO2,
  12.    HOJA2.CAMPO3
  13. FROM HOJA2
  14.  
  15. UNION
  16.  
  17. SELECT
  18.    HOJA3.FECHA,
  19.    HOJA3.CAMPO2,
  20.    HOJA3.CAMPO3
  21. FROM HOJA3
  22.  
  23. ORDER BY 1

 
Saludos
  • 0

#17 the walrus

the walrus

    Advanced Member

  • Miembros
  • PipPipPip
  • 60 posts

Posted 08 August 2018 - 07:22 AM

 
Bueno, en ese caso primero lograr la conexión, y una vez salvado ese escaño hacer el query dependerá que las tres hojas tengan los mismos campos y los mismos tipos, y si se tiene eso, haces un query con la clausula UNION.
 
 


sql
  1. SELECT 
  2.    HOJA1.FECHA,
  3.    HOJA1.CAMPO2,
  4.    HOJA1.CAMPO3
  5. FROM HOJA1
  6.  
  7. UNION
  8.  
  9. SELECT
  10.    HOJA2.FECHA,
  11.    HOJA2.CAMPO2,
  12.    HOJA2.CAMPO3
  13. FROM HOJA2
  14.  
  15. UNION
  16.  
  17. SELECT
  18.    HOJA3.FECHA,
  19.    HOJA3.CAMPO2,
  20.    HOJA3.CAMPO3
  21. FROM HOJA3
  22.  
  23. ORDER BY 1

 
Saludos

 

intento llamar un formular desde un mainmenu1 pero me da error mi codigo:

datamodule.adoquery.active := true;

datamodule.adoquery.Refresh;

tFrom1.create(self).showmodal;


  • 0

#18 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14460 posts
  • LocationMéxico

Posted 08 August 2018 - 07:40 AM

intento llamar un formular desde un mainmenu1 pero me da error mi codigo:

datamodule.adoquery.active := true;

datamodule.adoquery.Refresh;

tFrom1.create(self).showmodal;

 

Hola the warlus

 

Pues me parece que estamos ayudandote con los ojos cerrados, algo está mal con la conexión o con el excel, ¿nos puedes proporcionar una copia de tu excel para poder examinar cual sería el problema?

 

Saludos


  • 0

#19 the walrus

the walrus

    Advanced Member

  • Miembros
  • PipPipPip
  • 60 posts

Posted 08 August 2018 - 02:55 PM

Hola the warlus

 

Pues me parece que estamos ayudandote con los ojos cerrados, algo está mal con la conexión o con el excel, ¿nos puedes proporcionar una copia de tu excel para poder examinar cual sería el problema?

 

Saludos

mmm me parece que no me dará el resultado que busco, me podrían dar una ayuda importando una plantilla excel desde un botón gracias saludos 


  • 0

#20 the walrus

the walrus

    Advanced Member

  • Miembros
  • PipPipPip
  • 60 posts

Posted 29 August 2018 - 08:21 AM

 
Bueno, en ese caso primero lograr la conexión, y una vez salvado ese escaño hacer el query dependerá que las tres hojas tengan los mismos campos y los mismos tipos, y si se tiene eso, haces un query con la clausula UNION.
 
 


sql
  1. SELECT 
  2.    HOJA1.FECHA,
  3.    HOJA1.CAMPO2,
  4.    HOJA1.CAMPO3
  5. FROM HOJA1
  6.  
  7. UNION
  8.  
  9. SELECT
  10.    HOJA2.FECHA,
  11.    HOJA2.CAMPO2,
  12.    HOJA2.CAMPO3
  13. FROM HOJA2
  14.  
  15. UNION
  16.  
  17. SELECT
  18.    HOJA3.FECHA,
  19.    HOJA3.CAMPO2,
  20.    HOJA3.CAMPO3
  21. FROM HOJA3
  22.  
  23. ORDER BY 1

 
Saludos

 

hola, añadi la consulta al query pero no funciona no aparcen los campos seleccionados  


  • 0





Also tagged with one or more of these keywords: excel

IP.Board spam blocked by CleanTalk.