Seleccion aleatoria de registros con la funcion RND
Publicado por Jose (137 intervenciones) el 02/12/2014 16:52:50
Hola:
saludos a todos
en esta ocacion quiero aportar este procedimiento para realizar una seleccion aleatoria de registros en una base de datos, tomando en cuenta que yo la utilice para activar ordenes de mantenimiento preventivo a los cuales se les hara una auditoria, es solo el ejemplo de como seria el procedimiento, cada quien lo puede adaptar a sus necesidades
Espero y les sea de utilidad
saludos!!!
saludos a todos
en esta ocacion quiero aportar este procedimiento para realizar una seleccion aleatoria de registros en una base de datos, tomando en cuenta que yo la utilice para activar ordenes de mantenimiento preventivo a los cuales se les hara una auditoria, es solo el ejemplo de como seria el procedimiento, cada quien lo puede adaptar a sus necesidades
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
cuantos = Int(DCount("*", "QryPrevAuditar") / 10) ‘definir el porcentaje que se seleccionara desde un total en una base de datos o query
donde = DCount("*", "QryPrevAuditar") ‘ definir la cantidad de registros a escanear
Valor = Int((donde * Rnd) + 1) ‘definir el primer valor aleatorio que se buscara
marcados = 0 ‘ establecer cuantos hemos marcado
Do While marcados <= cuantos ‘ciclamos para asegurar dar el porcentaje de vueltas establecido
A = 1 ‘ establecemos cuantas veces hemos hecho el scann
DoCmd.GoToRecord , "frmpreventivosparaauditar", acFirst ‘enviamos siempre al primer registro
Do While A <= donde ‘ ciclamos para escanear todos los registros
On Error GoTo salir ‘aseguramos que la llegar al final se saldrá del proceso
If A = Valor Then ‘verificamos si el valor que estamos buscando
Auditar = True ‘si es así, le indicamos que tiene que hacer
marcados = marcados + 1
Valor = Int((donde * Rnd) + 1) ‘ volvemos a buscar otro numero aleatorio
GoTo salir ‘definimos que el proceso termino y que necesitamos volver a iniciar
Else
DoCmd.GoToRecord , "frmpreventivosparaauditar", acNext ‘si no es el valor, vamos al siguiente registro
A = A + 1 ‘le indicamos al proceso que vamos a dar otro scann
End If
Loop
salir:
Loop
Espero y les sea de utilidad
saludos!!!
Valora esta pregunta


1