% ' Moving to random record - Steven Jones' Extension If Not(记录集名称.bof and 记录集名称.eof) Then ' reset the cursor to the beginning If (记录集名称.CursorType > 0) Then 记录集名称.MoveFirst Else 记录集名称.Requery End If
记录集名称_totalrn = -1 记录集名称_totalrn = 记录集名称.RecordCount ' ony works on some recordsets, but much faster If (记录集名称_totalrn = -1) Then ' and if it didn't work, we still have to count the records.
' count the total records by iterating through the recordset 记录集名称_totalrn=0 While (Not 记录集名称.EOF) 记录集名称_totalrn = 记录集名称_totalrn + 1 记录集名称.MoveNext Wend
' reset the cursor to the beginning If (记录集名称.CursorType > 0) Then 记录集名称.MoveFirst Else 记录集名称.Requery End If
End If
' now do final adjustments, and move to the random record 记录集名称_totalrn = 记录集名称_totalrn - 1 If 记录集名称_totalrn > 0 Then Randomize 记录集名称.Move Int((记录集名称_totalrn + 1) * Rnd) End If End If ' all done; you should always check for an empty recordset before displaying data %>