o fai una funzione ricorsiva o fai un ciclo do while
codice:
NumeroRando=""
do while NumeroRando=""
  NumeroRandom = Int(10000*rnd)
  '..controllo che non ci sia nel database con
  'select id from tabella where id= & mionumerorandom
  if not rs.EOF then NumeroRandom=""
loop
santino83 ti ha indicato una via per la unzione ricorsiva... con qualche imprecisione che mi permetto di correggere
codice:
function creaId(nome_tabella)
  dim id
  randomize
  mionumerorandom = Int(10000*rnd) '..creo numero random
  '..controllo che non ci sia nel database con
  'select id from tabella where id= & mionumerorandom
  if not rs.eof then
    creaId(tabella)
  else
    creaId = mionumerorandom
  end if
end function
attento però che in entrambi i casi se i numeri casuali si trovano tutti nella tabella (tabella da 10000 record e numeri casuali calcolati da 1 a 10000) andrai in loop infinito