![]() |
Cargar un BDListBox
Hola, estoy tratando de cargar automaticamente un DBListBox pero no da pie con bola esto, les comento, tengo en un datamodule una adoconnection; en el form tengo el dblistbox tambien tengo un datasource y un adoquery.
seteo en el dblistbox lo siguiente : DataSource = DS1 (el datasource del form) DataFiel = Nombre (el campo del la tabla ) en el DataSource lo puse así : DataSet = ADOQuery1 en el ADOQuery1 lo puse así: connection : ADOConnection (del DataModule) y la sentencia sql es la siguiente : Select * From TGrupos. y no muestra nada en el dblistbox, lo raro es que la conexion me dice que esta bien .. que pasará ?? saludos |
Hola
Como no se hacer las cosas bien, entonces las hago asi: Y no tengo que enlazar el componente con nada. Saludos |
gracias por responder pero me salta el siguiente error
List Index Out Of Bounds(0) |
Hola
Si colocas el codigo como te lo puse, es muy probable. El asunto esta asi: List Out Of Bounds quiere decir que no estas enlazando el campo que debes. recuerda que los campos empiezan en 0 ejemplo: Tengo una tabla con estos campos: nombre edad fecha osea tres campos el campo nombre seria el campo 0 Si colocas la sentencia con dos campos, te dara ese mismo error. Espero que lo entiendas. Saludos |
en la tabla tengo 2 campos , el error ya esta, era que ponia 1º el active en true y era despues de la llamada al query; pero no muestra nada, sigue sin mostrar nada en el dblistbox
|
Hola
Revisa bien todo, yo lo probé antes de decirlo y si carga los datos. Saludos |
Hola
esto es lo que puse, y no sigue sin cargar nada, yo uso ADO, por ahí debe estar el tema, hay alguna forma que veas lo que hice ?? ADOQuery2.SQL.Text:=''; ADOQuery2.SQL.Text:='Select Nombre From TGrupos '; ADOQuery2.Active:=True; While (ADOQuery2.Eof) DO BEGIN DBListBox1.Items.Add(ADOQuery2.Fields[0].Text); ADOQuery2.Next; |
Hola
Yo uso Ado y no es el problema. Si quieres puedes poner un archivo adjunto, pero tengo una duda? Para que pones dos veces: No tiene logica, text borra el contenido de la consulta si hay alguna otra en el query, no se necesita clear ni nada por el estilo. Lo normal es:
Si te fijas bien en tu consulta, veras que: 1- Tienes repetido text. 2- No tienes NOT en el while 3- encierras el query entre parentesis. Saludos |
jeje, se nota que sabes !!!
ya está eran esas cosas nomás.- Muchisimas Gracias ... pronto pondré nuevas dudas jaja saludos |
Hola, tengo otra pregunta.-
yo quiero ahora,que al hacer click sobre uno de los campos del dblistbox, se muestre en un dbgrid, los datos correspondiente a ese campo, ejemplo, en mi ejemplo si se hace click en internet(un campo del listbox), yo quiero que en el dbgrid me salga lo relacionado a interntet, que claro está, en otra tabla, en donde tengo el id (de internet) de lo que seleccioné, me explico, no me sale como pasar el parametro para hacer la consulta correspondiente, el parametro que le paso es el nuemero de posision del dblistbox, que coincide con el campo codigo_g de la tabla de TGrupos, a ese codigo se lo mando (!! ese es el problema no se como hacerlo ¡¡) a la tabla TDesG, para que busque que datos tienen el mismo codigo y lo muestro en el dbgrid.- Se entendió ?? saludos |
Hola
Bueno, veo que nos as visto el wiki.:D Aqui tienes un ejemplo sencillo. Como veras: 1- se usa el evento onclick del listbox 2- se usa un case of 3- se definen los items por numero. Es una de las tantas formas de hacerlo. Saludos |
si lo vi :), pero con un case, se volveria lento digamos si tengo demasiados campos en dblistbox, a demas al dblistbox pueden agregarse nuevos campos, así que con un case no sirviria, ya saqué la forma de saber en cual de los campos del dblistbox se hizo referencia, eso me da un numero, ahora lo que no se es como pasarlo a otra consulta, para que en el dbgrid, me muestre otra informacion referida a ese numero, me explico ?
|
Hola
Codigo, siempre codigo es la mejor forma de ver que pasa o que quieres hacer. Coloca el codigo de lo que tienes, asi veremos o entenderemos mas. Saludos |
es que ese es el problema no me sale el codigo, por ejemplo;
en COD (que es una variable integer), tengo guardado el numero que hace referencia a lo seleccionado en el dblistbox; ahora yo quiero pasar como parametro (todo en ADO), ese COD, para poder hacer otra consulta, la macana es esa, no se como hacerlo, acá pongo mas o meno el codigo en donde busco y guardo ese COD, para luego pasarlo a la consulta begin i:=0; cant:=DBListBox1.Count; While (i <> cant) do begin If(DBListBox1.Selected[i]=True)then cod:=i+1; i:=i+1; end; edit1.Text:=IntToStr(cod); FormSistema.ADOQuery1.SQL.Text:='Select Cod_G From TContraseñas Where ((Cod_G) = cod ) '; FormSistema.ADOQuery1.Active:=True; y no compila, alguna macana me estoy mandando y no me doy cuenta, jeje |
Hola
Veamos asi: No se exactamente que pretendes hacer, pero hoy no traje la bolita.:D Saludos |
jaja, lo que intento hacer, acá en manejar contraseñas, en el dblistbox estan los grupos de esas contraseñas, por ejemplo Internet; lo que quiero es que al hacer click sobre el link del dblistbox (por ejemplo en Internet), en el dbgrid me salga las contraseñas, el nombre del usuario para ese grupo (es decir Internet).-
|
Hola
Ves, estoy mas perdido que tu.:D Olvida el otro, no va a servir, este es: o tambien: Ahora si vera el parametro cod.:D Saludos |
Hola
esta parte: edit1.Text:=IntToStr(cod); solo lo hago para guiarme nada mas y poder ver si esta bien el numero que tira, yo eso ya lo tengo guardado en cod ; me explico ? igual no muestra nada en el dbgrid !!!! |
Hola
Que dificil la pones. Primero, supongo que el dbgrid lo tienes ligado a la consulta, (adoquery1). Si tienes el codigo en cod, pues es el que vas a usar. Me imagino que sera asi. Recuerda que cod es integer, el campo (Cod_G) tambien lo tiene que ser. Saludos |
hola, no me deja ligar el dbgrid al adoquery, solo aun datasource ; ahora me aparecen bien los registros, pero no se ven, se entiende ? cuando hago click e internet, en el dbgrid salen 2 filas (que estan bien, ya que tengo 2 referencias a internet), pero no los veo.... jeje me esta volviendo loco esto
|
| La franja horaria es GMT +2. Ahora son las 15:29:24. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi