Recordset

08/04/2010 - 01:46 por juan | Informe spam
Estimados, tengo el siguiente problema, necesito hacer dos bucles (uno dentro
del otro)con acciones en una tabla, un bucle lo hago con la instruccion


Do While Not "recordset".EOF
"recordset".MoveFirst
sentencias
recordset.movenext.

pero el problema es que el otro bucle lo deberia hacer con un for llendo por
registros al azar, existe algo como recordset.(1) recordset(i) que me permita
ir a recordset especificos????, desde ya muchas gracias!, saludos!

Juan
 

Leer las respuestas

#1 José Mª Fueyo
08/04/2010 - 14:06 | Informe spam
Hola Juan
No entiendo que es lo que realmente quieres hacer. Sí necesitas un
conjunto de registros aleatorios, podrías crear una columna extra en
tu tabla origen y rellenarlos con números aleatorios. Ordenando por
ésta columna, y regenerando el valor de ésta columna, junto con la
sentencia TOP de la consulta puedes obtener cada vez un conjunto
distinto y aleatorio de registros.
Este procedimiento te permite agregar ésta columna de datos aleatorios
y calcular su valor
<pego>
Sub CampoOrdenacionAleatorio(sMiTabla As String)
Dim sSQL As String

Dim db As DAO.Database
Set db = CurrentDb
Dim rs As DAO.Recordset

sSQL = "Alter Table " & sMiTabla & " Add Column RandomSort Long"
'Sí el campo existe daría error. Atrapo el error y sigo.
On Error Resume Next
db.Execute sSQL

Randomize 'Inicializo el generador de números aleatórios

Set rs = db.OpenRecordset("select * From " & sMiTabla,
dbOpenDynaset, adLockOptimistic)
Do Until rs.EOF
rs.Edit
rs.Fields("RandomSort") = Int(Rnd() * 50000)
rs.Update
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing

MsgBox "TERMINADO"
End Sub
</pego>

Espero te sirva

Salu2
José Mª Fueyo
[MS MVP Access]

Preguntas similares