La Web del Programador: Comunidad de Programadores
 
    Pregunta:  53013 - MOSTRAR REGISTROS DE UNA BASE DE DATOS EN FORMA ALEATORIA.
Autor:  German Vallejos
Necesito que en mi DataReport me salgan impresos los registros de una determinada tabla, pero en forma aleatoria (o sea mezclados, no en el orden en que los cargue) y sin repetirse. Si alguien sabe como hacerlo se lo agredeceria mucho. Saludos.

  Respuesta:  Roberto García Pazos
Por lo que dices me imagino que querras que cada vez que muestres los registros de la tabla aparezcan de forma distinta, bien, eso es casi mas un problema de metodologia que de visual basic, lo que debes de hacer primero es saber cuantos regisgtros tiene la tabla (con la propiedad recordcount del recordset, lo puedes sabes), despues debes de crear un bucle desde 0 al numero de registros que tienes, y poner el trozo de codigo que crea el aleatorio dentro de este bule para que saque una cada vez, despues del aleatorio creas una rutina para comprobar que el numero que se creo no esté (almacenandolos en una matriz dinamica lo consigues), y despues mueves el recodser (con el movenext) tantas veces como numero te haya salido en el aleatorio (en otro bucle), despues de haber movido el recordset, copias el resultado a un recordset manual creado en tiempo de ejecucion con los mismos campos de tu consulta, y una vez terminado el bucle, muestras los resultados del recordset manual.

Podria ponerte el código, pero creo que lo bonito de la programacion es intentarlo uno mismo, con la descripcion en pseudocodigo deberias de tener bastante, de todas formas si no es asi, puedes mandarme un mail para que te escriba el pseudocodigo y tu lo pases a VB, pero dime, no es mas gratificante tener la idea y programarlo?, lqa satisfaccion es enorme, creeme.

Saludos