Ir al contenido


Foto

consultas a base de datos excel

excel

  • Por favor identifícate para responder
19 respuestas en este tema

#1 the walrus

the walrus

    Advanced Member

  • Miembros
  • PipPipPip
  • 60 mensajes

Escrito 31 julio 2018 - 05:27

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
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 01 agosto 2018 - 08:53

¿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 mensajes

Escrito 01 agosto 2018 - 05:00

¿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
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 02 agosto 2018 - 11:12

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 mensajes

Escrito 02 agosto 2018 - 04:57

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
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 03 agosto 2018 - 07:05

El error es obvio, quítale los corchetes.


  • 0

#7 the walrus

the walrus

    Advanced Member

  • Miembros
  • PipPipPip
  • 60 mensajes

Escrito 03 agosto 2018 - 01:09

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
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 03 agosto 2018 - 03:36

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 mensajes

Escrito 03 agosto 2018 - 06:07

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
  • 6.295 mensajes
  • LocationArgentina

Escrito 03 agosto 2018 - 09:34

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 mensajes

Escrito 04 agosto 2018 - 04:32

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
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 05 agosto 2018 - 07:21

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

 

Saludos.


  • 0

#13 the walrus

the walrus

    Advanced Member

  • Miembros
  • PipPipPip
  • 60 mensajes

Escrito 05 agosto 2018 - 04:16

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
  • 14.446 mensajes
  • LocationMéxico

Escrito 05 agosto 2018 - 10:19

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

Archivos adjuntos


  • 0

#15 the walrus

the walrus

    Advanced Member

  • Miembros
  • PipPipPip
  • 60 mensajes

Escrito 06 agosto 2018 - 04:22

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
  • 14.446 mensajes
  • LocationMéxico

Escrito 07 agosto 2018 - 07:28

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 mensajes

Escrito 08 agosto 2018 - 07:22

 
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
  • 14.446 mensajes
  • LocationMéxico

Escrito 08 agosto 2018 - 07:40

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 mensajes

Escrito 08 agosto 2018 - 02:55

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 mensajes

Escrito 29 agosto 2018 - 08:21

 
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





Etiquetado también con una o más de estas palabras: excel

IP.Board spam blocked by CleanTalk.