title: Create random number without duplicating
body: <p>I am trying to troubleshoot an existing Access database application that is supposed to generate a random number between 1 and the number of records in the table. This is done for 2o different tables with a varying amount of records. The tables with less records are displaying duplicate numbers of the 10 that it is supposed to display and write to a separate table. I assume the same would happen with the larger tables but with more numbers to choose from I was just unable to duplicate the issue.</p>
  
  <p>Here is a sampling of the code with error handling removed:</p>
  
  <pre><code>    Dim db As DAO.Database
  Dim rstRecords As DAO.Recordset
  Dim rs As DAO.Recordset
  Dim tdfNew As TableDef
  Dim fldNew As Field
  Dim i As Integer
  Dim K As Integer
  Dim Check As String
  
  Set db = CurrentDb
  Set rstRecords = db.OpenRecordset("customer_table")
  
       rstRecords.MoveLast
       FindRecordCount = rstRecords.RecordCount
       i = rstRecords.RecordCount
  DoCmd.DeleteObject acTable, "Unique_numbers"
  
  '--- create the table
  Set tdfNew = db.CreateTableDef("Unique_numbers")
  '--- add text field (length 20)
  Set fldNew = tdfNew.CreateField("customer_table", dbLong)
  '--- save the new field
  tdfNew.Fields.Append fldNew
  
  '--- save the new table design
  db.TableDefs.Append tdfNew
  
  '---Initialize your recordset
  Set rs = CurrentDb.OpenRecordset("Unique_numbers", dbOpenDynaset)
  
  
  'Dim i As Integer
  'Dim K As Integer
  'Dim Check As String
  
  'i = TxtInput
    TxtInput = i
    K = 0
    Check = T
  
  Do
    Do While K &lt; 11
      'K = K + 1
          Randomize
            If K = 0 Then
              TxtOutput = Fix(i * Rnd) + 1
              rs.AddNew
              rs.Fields(0).Value = TxtOutput
              rs.Update
              K = K + 1
            ElseIf K = 1 Then
              TxtOutput2 = Fix(i * Rnd) + 1
              rs.AddNew
              rs.Fields(0).Value = TxtOutput2
              rs.Update
              K = K + 1
            ElseIf K = 2 Then
               TxtOutput3 = Fix(i * Rnd) + 1
               rs.AddNew
               rs.Fields(0).Value = TxtOutput3
               rs.Update
               K = K + 1
            ElseIf K = 3 Then
               TxtOutput4 = Fix(i * Rnd) + 1
               rs.AddNew
               rs.Fields(0).Value = TxtOutput4
               rs.Update
               K = K + 1
            ElseIf K = 4 Then
               TxtOutput5 = Fix(i * Rnd) + 1
               rs.AddNew
               rs.Fields(0).Value = TxtOutput5
               rs.Update
               K = K + 1
            ElseIf K = 5 Then
               TxtOutput6 = Fix(i * Rnd) + 1
               rs.AddNew
               rs.Fields(0).Value = TxtOutput6
               rs.Update
               K = K + 1
            ElseIf K = 6 Then
               TxtOutput7 = Fix(i * Rnd) + 1
               rs.AddNew
               rs.Fields(0).Value = TxtOutput7
               rs.Update
               K = K + 1
            ElseIf K = 7 Then
               TxtOutput8 = Fix(i * Rnd) + 1
               rs.AddNew
               rs.Fields(0).Value = TxtOutput8
               rs.Update
               K = K + 1
             ElseIf K = 8 Then
               TxtOutput9 = Fix(i * Rnd) + 1
               rs.AddNew
               rs.Fields(0).Value = TxtOutput9
               rs.Update
               K = K + 1
             ElseIf K = 9 Then
               TxtOutput10 = Fix(i * Rnd) + 1
               rs.AddNew
               rs.Fields(0).Value = TxtOutput10
               rs.Update
               K = K + 1
               Check = f
              Exit Do
            End If
      Loop
  Loop Until Check = f
  </code></pre>