![]() |
Como hacer consultas de registro anterior y siguiente
Hola
Amigos necesito de su valiosa ayuda. Estoy desarrollando un programa de pedidos, donde tengo un TEdit con el nombre de Codigo_Producto y cuando le doy enter me despliega en un DBGrid todos aquellos código de la tabla de inventario que tengan relación con ese código que se dígito, hasta aquí todo me funciona bien, pero estoy poniendo dos botones, uno para seguir con el siguiente código y el otro botón para ir al código anterior. Pero no se como hacerlo. Si me puede ayudar se los voy agradecer. :confused: Aqui les dejo el codigo de la consulta por código el producto.
Esto funciona bien, lo que no se, es como hago si coloco los dos botones para que el programa, lea el siguiente registro y el registro anterior, apartir del registro dado. Gracias |
Recuerda poner los tags al código fuente, ejemplo:
![]() Gracias :) |
Hola, en principio podrias ejecutar la consulta talcual pero con
En todo caso se podrias ver el ID del seleccionado y luego hacer la busqueda con el + - Id (esto por si los codigos no tienen nada que ver entre si) ej: id-1 cod 145658 / id-2 cod 000448. De esta manera vas recorriendo el siguiente codigo no el siguente numero del codigo ingresado. Saludos Nicolas Perichon |
Hola
No entiendo la logica del programa. En principio no veo el dbgrid, veo un stringrid. Haces dos sentencias sql 1 para el ibquery1 y otra para el dos, estas estan seguidas, sin embargo casi de inmediato creas una condicion if conteo > 0 then la que cambia la sentencia del ibquery2 y esta es la que me da la impresion de que llena el stringgrid. No entiendo. Antes de poder moverse entre registros adelante y atras me parece que se deberia limpiar el codigo. Saludos |
Perdon si, lo que tengo es un stringrid.
En el ibquery2, hago la lectura de una segunda tabla que esta ligada al maestro de inventario (ibquery1), en la segunda cuento los registros y luego hago la lectura de los registros ligados. En base a esto lleno el stringrid. Pero como te decia, esto me funciona bien. El problema esta en como hago la programación de los botones que están fuera del stringrid. para poder recorrer la tabla del maestro del inventario ? |
Hola
Como dije, seguro no entiendo bien. Dices que el codigo recoge el dato segun el codigo de producto. Luego lo pasa al stringrid. Lo que no entiendo es si solo recoge un dato o toda la lista segun la sql ?. Disculpa pero es que no entiendo como recorrer una tabla de adelante para atras si ya esta todo no lo entiendo. Saludos |
Hola
No podrias ligar un dbnavigator al ibquery2 y eliminar las opciones que no necesites ?. Saludos |
Te lo explico mas sencillo, olvidemos del el stringrid y suponga que tengo en TEdit donde pide el código del un articulo de la tabla del inventario, y en base a ese código me llena otro TEdit donde esta el nombre del producto, nada más.
Ahora pongo dos botones, uno es siguiente y otro es atrás. Si le doy un click al siguiente, que el programa me pueda saltar al siguiente registro o atrás para que se desplace al registro anterior. y me despliegue el nombre del producto. Hay que tomar en cuenta, que puede ser que el codigo que se digita puede ser, ej: 30-710 y el siguiente registro puede se 30-755 y el registro anterior puede ser BS125458. Espero que me haya explicado. Gracias por su atención. |
Hola
Lo que veo es lo siguiente: si tienes un sql asi: Select * from articulos te traera toda la tabla, pero si tienes: Select * form articulos WHERE codigo = Edit1.text Ya te trae SOLO ese codigo, osea, no vas a poder ir adelante o atras ya que no hay. Por eso digo que me parece que el asunto esta en el sql, depende de como lo hagas te traera lo que necesites. Sigo sin saber si estoy perdido. Saludos |
Exactamente el sql lo que hace es la segunda opcion.
Select * form articulos WHERE codigo = Edit1.text Disculpa, lo que me quiere decir es que con este tipo de consulta no se puede avanzar ni hacia adelante, ni hacia atrás. De ser así, que me recomendaría. Gracias |
Hola
Puedes hacer esa consulta, pero si quieres ir para adelante o atras deberas intercalarla con la consulta que te traiga todo. No soy bueno en esto, recuerda que no soy programador, pero me parece que deberia ser asi. Saludos |
Hola.
Ok, vamos a ver como me va, de todos modos muchas gracias por su tiempo. Muy amable. Saludos |
Hola
Vale, intentalo, si tienes mas dudas veremos a ver si por lo menos las entiendo...:D Saludos |
La franja horaria es GMT +2. Ahora son las 13:14:02. |
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