FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Error al insertar registros en el StringGrid
Hola de nuevo, fijense que estoy tratando que en el grid se me visualicen unos datos, pero al momento de hacerlo me sale el siguiente error:
Saben a que se refiere este error? Este es mi codigo que utilizo en mi boton:
Lo que hago en este grid es que se visualice las secciones,las preguntas y despues en otras columnas los valores de las opciones.Si una respuesta tiene el valor =1 que lo pinte en la columna2, si el valor =2 pintarlo en la columna 3,si valor=3 pintarlo en la columna4,si valor=4 pintarlo en la columna5,y por ultimo si valor=5 pintarlo en la columna 6 |
#2
|
|||
|
|||
Hola...
¿Exactamente en que línea te produce el error? Ese error indica que estás tratan de acceder a una pocisión que no existe en una lista. Ahora, este pedazo de código:
Bien lo podrías hacer así:
Edición: Ya revisando bien tu código, veo que incrementas en dos lugares la variable x y recorres query1 y dentro del ciclo de query1 recorres query2. También en el ciclo de query3 veo que no haces un query3.Next, por lo al entrar a ese ciclo la aplicación debe quedar "colgada", ya que es un ciclo infinito. Saludos... Última edición por maeyanes fecha: 05-11-2008 a las 19:38:24. |
#3
|
|||
|
|||
Gracias Maeyanes por tu respuesta.El error al momento de ejecutarlo me lo da en esta linea:
Otra duda, con el codigo que me sugieres me va a asignar los valores en cada columna?osea en la col 2 el valor 1 y asi sucesivamente hasta la columna 6 el valor 5????? |
#4
|
|||
|
|||
Aqui dejo el codigo antes que lo modificara y funcionaba bien.Con este codigo me muestra las secciones y las preguntas que tiene cada seccion.Lo que quiero hacer es agregar los valores de las respuestas, en las columnas que siguen
|
#5
|
|||
|
|||
Cita:
Cita:
Saludos... |
#6
|
|||
|
|||
Cita:
Saludos.Gracias por el tiempo que me estas dedicando.En serio muchas gracias |
#7
|
|||
|
|||
Hola...
Este código:
Cambialo por este:
El cambio es por que Query3 me imagino que solo debe devolver un registro, así que no tiene caso hacer el ciclo while..do... Saludos... |
#8
|
|||
|
|||
Cita:
Por otro lado modifique el codigo como me sugeriste, solo que me sale un solo valor para una sola pregunta de toda la seccion(osea no me salen los valores para las demas preguntas), y eso no esta bien, ya que faltan otras respuestas.Me sugieres alguna otra solucion? |
#9
|
|||
|
|||
Hola...
Ah!! Pues desde ahí hubieses empezado ¿Podrás poner una pequeña tabla mostrando como quieres que se muestren los datos en el StringGrid? Algo como: Código:
+--------+--------+--------+ | Campo1 | Campo2 | Campo3 | +--------+--------+--------+ | 1 | 1 | 2 | +--------+--------+--------+ | 2 | 3 | 4 | +--------+--------+--------+ | 6 | 8 | 1 | +--------+--------+--------+ Saludos... |
#10
|
|||
|
|||
Aqui esta como quiero que se vean los datos, si te fijas aparecen los valores de las respuestas en un renglon y no ocupan siempre las columnas, sino dependiendo de la pregunta tienen que aparecer los valores de las respuestas
Espero haberme dado a entender Última edición por Elite237 fecha: 05-11-2008 a las 21:43:08. Razón: No se veia bien en la imagen |
#11
|
|||
|
|||
Hola...
Ya veo como quieres tus datos... ahora, veo que haces cuatro consultas diferentes a la misma tabla det_evaluacion, ¿por qué eso? La primera vez veo que obtienes un valor para poner en un componente TLabel pero luego veo que usas diferentes condiciones en las cláusulas where para las otras 3 consultas. Un pseudocódigo de lo que quieres lograr sería algo como (esto tratando de deducir los campos de la tabla det_evaluacion): Código:
X := 1; Query1.Open; while not Query1.Eof do begin StringGrid.Cells[0, X] := Query1.FieldByName('numero_pregunta').AsString; // 1.1 StringGrid.Cells[1, X] := Query1.FieldByName('pregunta').AsString; // ¿Que es...' StringGrid.Cells[7, X] := 'Resultado'; Query2.Open; // Obtenemos las respuestas while not Query.Eof do begin Valor := Query2.FieldByName('valor_respuesta').AsInteger; // 1 en columna 2, 2 en columna 3, etc... StringGrid.Cells[Valor + 1, X] := IntToStr(Valor); Query2.Next end; Inc(X); StringGrid.RolCount := X + 1; // Agregamos una línea nueva Query1.Next; end; Saludos... |
#12
|
|||
|
|||
Cita:
Hago una primer consulta para sacar la version de la evaluacion y mostrarla en un label, esta la comparo que sea la evaluacion que seleccione del combobbox.Otra consulta es para sacar las secciones que tiene la evaluacion, de igual manera la comparo con la opcion que selecciona del combobox, tambien me aseguro que es una seccion(puesto que tiene 0 y solo las secciones tienen esa tipo).Algo similar es para sacar las preguntas de esa seccion,ya que me aseguro que sea la opcion que selecciona el usuario del combobox,que sea de tipo 1(ya que solo las preguntas tienen ese tipo) y la ultima que acabo de hacer es para sacar los respuestas para cada pregunta,al igual que las demas la comparo con los valores que he comentado y me aseguro que sea tipo 2(ya que solo las respuestas tienen ese tipo).Y hago que se visualice solo el valor que tiene cada respuesta en el stringgrid.Asi tengo mi tabla y te coloque unos ejemplos entre parentesis para que me de a entender mejor. [delphi] +--------------+ det_Evaluacion +--------------+ det_eval ' clave de la evaluacion.. det_version ' version de la evaluacion det_clave ' clave ya sea de la seccion,pregunta u opcion det_pregunta ' descripcion de la seccion,pregunta u opcion det_tipo ' tipo que tendra la seccion(0),pregunta(1) u opcion(2) det_valor ' valor que tendra la seccion(0),pregunta(0) u opcion(puede ser 1,2,3,4 ó 5 +--------------+ [/delpih] Con esto que te explico te parece que deba usar el codigo que me sugieres? |
#13
|
|||
|
|||
Hola...
Si te entendí bien, lo que tu código debe hacer es algo así: Código:
+--------+----------+---------+---------+---------+---------+---------+ | Numero | Pregunta | Opcion1 | Opcion2 | Opcion3 | Opcion4 | Opcion5 | +--------+----------+---------+---------+---------+---------+---------+ | 1 | Sección | | | | | | +--------+----------+---------+---------+---------+---------+---------+ | 1.1 | ¿Como es.| 1 | 2 | | | 5 | +--------+----------+---------+---------+---------+---------+---------+ | 1.2 | ¿Cual es.| 1 | | 3 | | 5 | +--------+----------+---------+---------+---------+---------+---------+ | 1.3 | ¿Donde...| 1 | 2 | 3 | | | +--------+----------+---------+---------+---------+---------+---------+ | 2 | Sección | | | | | | +--------+----------+---------+---------+---------+---------+---------+ | 2.1 | ¿Como es.| 1 | 2 | | | 5 | +--------+----------+---------+---------+---------+---------+---------+ | 2.2 | ¿Cual es.| 1 | | 3 | | 5 | +--------+----------+---------+---------+---------+---------+---------+ | 2.3 | ¿Donde...| 1 | 2 | 3 | | | +--------+----------+---------+---------+---------+---------+---------+
Saludos... |
#14
|
|||
|
|||
Gracias por el codigo,copie y pegue todo tu codigo pero me manda el siguiente error:
El error me lo manda en la linea donde buscamos las preguntas Saludos |
#15
|
|||
|
|||
Hola...
Hay un pequeño error y es que me faltó un +, la sentencia debe quedar así:
Y la línea que me indicas es:
Saludos... Última edición por maeyanes fecha: 06-11-2008 a las 00:02:13. |
#16
|
|||
|
|||
Ya lo modifique, pero me manda el siguiente error:
De todas maneras te muestro como quedo el codigo en el boton:
|
#17
|
|||
|
|||
Hola
En la línea donde dice while not Eof do debería decir while not Query2.Eof do... Ahora, si te recomiendo mucho que te dediques a analizar bien el código, no solo se trata de copiar y pegar... Saludos... |
#18
|
|||
|
|||
Estoy checando el codigo,ya que tu lo haces diferente que yo.Gracias por la ayuda.Saludos
|
#19
|
|||
|
|||
Una duda Maeyanes:En este codigo lo que hace es por ejemplo, si en la consulta obtiene un valor de 1 por ejemplo, lo que hace es que la variable valor se suma quedando en valor 1+1=2...entonces queda 2,x y se asigna a la columna 2 del stringgrid..es asi?
Saludos |
#20
|
||||
|
||||
mmmmmm
segun veo la variable valor almacena el contenido del Query3 campo det_valor.
luego en la grilla, en la columna Valor, fila X almacena el contenido de la variable Valor. eso lo repite para cada columna incrementada. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Insertar Boton en StringGrid, | seb@ | OOP | 19 | 10-04-2016 06:09:21 |
Insertar ub boton o panel en cada celda de un Stringgrid | ingel | Varios | 1 | 21-07-2007 00:35:18 |
Error al insertar registros en Access | Moises22 | Conexión con bases de datos | 2 | 09-01-2006 15:36:25 |
Error al insertar o borrar registros en firebird | pepitu | Firebird e Interbase | 3 | 26-09-2005 15:56:57 |
problema al insertar dato tipo date a un stringGrid | emil | SQL | 2 | 11-07-2003 19:41:34 |
|