![]() |
2 Listbox y BD ....
Tengo dos LISTBOX en los cuales hago lo de siempre, pasar de un lado a otro valores de 1 lista. El problema que tengo es que al pasarlo a la base de datos lo hago de la siguiente manera y me da error. Si por ejemplo, en este caso, paso dos valores a la lista me lo mete en la base de datos, pero si solo meto un valor me da error " LIST INDEX OUT OF BOUNDS (1)"
Pensaba que si comparaba con ' ' y habia algo metido lo pasaría a la base de datos y sino no se metería en el bucle. Que hago mal ?? El objetivo es q todos los valores que paso a la segunda lista se metan en una base de datos. Código:
table4.open; Gracias |
Sigo sin dar con la solución. Una ayudita please...
Un saludo.. |
Si sólo metes un valor en la lista, el primer condicional se ejecuta y se incremente el valor de x de manera que al llegar al segundo condicional x = 1 y no habiendo más que el elemento 0 en la lista te produce el error por intentar acceder a listbox3.Items[1].
Si metes dos valores no te falla porque listbox3 tiene los elmentos 0 y 1. También te va a fallar si no hay ningún elemento en la lista. En este caso fallará dese el primer condicional al intentar acceder a listbox3[0] ya que no existe item coníndice 0. No sé bien qué intentas hacer pero da la impresión de que requieres un bucle:
De esta forma, además de que abarcas cualquier número de elementos en la lista, te aseguras que dentro del bucle x sólo pueda ser un índice válido de listbox3. En el caso de que la lista esté vacía, ni siquierea se entrará al bucle. // Saludos |
El problema q tengo es q haya los elementos q haya se metan en la base de datos. Por eso lo de comparar con blanco en mi código del principio. El tema es lo q tu dices, al intentar acceder a un elemento de la lista q no existe da el error. Pero como hago para saber si el el elemento 'x' existe o no ??
Como dije al principio pensaba q era compararlo con ' ', pero ya he visto q no es así. Entonces como? En el ejemplo q me pones no me valdría, ya q son 15 variables (de 'Exp1' a 'Exp15') y si solo meto en 'Exp1' machacaria el mismo valor todo el tiempo. Otra cosa q me gustaria aclarar es si se puede meter una tabla dentro de un campo de la BD, ya q por ejemplo en este caso la tabla en cuestion tiene casi 40 campos y pienso q es demasiado. No ?? Vamos en este caso mi intencion sería en el campo exp, meter una tabla de 15 elementos. Es posible ?? La BD es Paradox. Un saludo.. Gracias.. EDITADO Ya lo he sacado, es lo q decias necesitaba un bucle como el q tu me has puesto y dentro de ahí con IF's controlar si es el elmento 1 exp1, el 2 exp2, y así sucesivamente... Lo q sigo en la duda es lo de tabla q he dicho antes.. Gracias de nuevo. |
No creo que Paradox te permitar anidar tablas pero además esto rompería la normalización de tus tablas. Por otro lado Paradox admite hasta 255 campos por tabla.
// Saludos |
Quizás no he entendido muy bien el tema, pero a ver que parece esto:
Otra posibilidad es crearte una tabla llamada "Expresiones" con 2 campos, una de código (para relacionar con la tabla maestra), y otra con las expresiones del tipo "Exp1".."Exp15" Saludos y espero que vayan los tiros por aqui. |
La franja horaria es GMT +2. Ahora son las 08:03:56. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi