Registro aleatório no Access

SELECT TOP 1 CAMPO FROM TABELA ORDER BY RND(NOW()+IDDATABELA)
Ahá, descobri! Porque ninguém me contou isso antes? (Acabei de inventar, se você conhece um jeito melhor, por favor me avise.)
UPDATE: Testei ontem num OLEDB e funcionava, fui testar hoje num Jet com uma tabela menor e não funcionou nem a pau. Uma lidinha na documentação do Access[bb] me levou a: SELECT TOP 1 CAMPO FROM TABELA ORDER BY RND(INT(NOW*IDDATABELA)-NOW*IDDATABELA)
Essa funcionou em todo lugar que eu testei.

Publicado por

Elcio

Elcio é sócio fundador da Visie Padrões Web. Pioneiro no uso e divulgação dos padrões do W3C no Brasil, Elcio já treinou equipes de dezenas de empresas como Globo.com, Terra, Petrobras, iG e Locaweb. Além disso, tem dirigido as equipes da Visie no desenvolvimento de projetos web para marcas como Brastemp, Itaú Unibanco, Johnson & Johnson e Rede Globo.

36 comentários em “Registro aleatório no Access”

  1. eu gostaria de saber como faço para fazer um formulario aleatorio?
    exemplo: quando uma pessoa acessar o meu cadastro, automaticamente aparecer no formulario o nome do cliente pelo qual a pessoa esta se cadastrando?
    por favor!!!! aguardo resposta? por favor peço que envie essa resposta para o meu email: honopla@hotmail.com
    7

  2. Cara, você merece o nosso respeito!
    Agora porque o select não funciona assim no asp: “select codigo, banner from tabela order by rnd(codigo)” visto que funciona perfeitamente direto no access?

  3. Oi pessoal? Uma pergunta essa sua instrução Sql funciona nesta visão:

    Quero fazer o sorteio doS regitros de uma tabela que tem no máximo 5 a 10 registro cadastrados.Através dessa instrução funciona? E como faço?
    Agradeço

  4. Pessoal, estou com um problema e não consigo resolver já faz 3 dias….estou no modo formulário e estou criando uma caixa de combinação, mas quando estou selecionando os itens que desejo que apareça e logo depois tem a opção de avançar, logo que clico ali apareçe uma msg assim: componente activeX não pode criar objeto
    O que vem ser isso e como faço para solucionar este problema, fico no aguardo de ajuda de alguém.
    Desde já agradeço a todos
    Fabrício.

  5. Olá, essa função funcionou quando fiz localmente, mas ao enviar ao servidor apresenta o seguinte erro:

    “Microsoft OLE DB Provider for ODBC Drivers error ‘80040e10’
    [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.”

    Meu Windows e Access está em Inglês, o servidor acredito ser um Windows Português. Isso influencia???

  6. ele traz sempre os mesmo quando eu faço isso por exemplo select top 5 * from dbo.FMTB015_CLIENTE ORDER BY RAND(CLI_NU_SEQUENCIAL) Alguem sabe porque ? obrigado

  7. Não man, eu coloco a consulta direto no Access e funciona normalmente, mas quando eu coloco a consulta na página para fazer a chamada pro banco Access não funciona. Sempre volta a mesma linha. Eu resolvi de outra forma aqui, usando vetor. Olha a solução ai. Dim vetor vetor = array() set qtd = Conexao.execute(“SELECT count(*) as qtd FROM TABELA”) set cod = Conexao.execute(“SELECT cod FROM TABELA”) qtd = qtd(“qtd”) redim vetor(qtd) i = 1 while not(cod.EOF) vetor( i ) = cod(“cod”) i = i + 1 cod.movenext wend Randomize randomico = CInt(Rnd()*qtd) if(randomico = 0)then randomico = 1 end if

  8. como esta escrito parece que é o ID da tabela no catalogo de dados. Mas blz, sim , eu ja coloquei a PK da tabela, mas sempre retorno o mesmo valor.

  9. Ola amigos, preciso saber como pegar o [ID] de uma tabela no Access para poder usar essa cunsulta : SELECT TOP 1 CAMPO FROM TABELA ORDER BY RND(INT(NOW*IDDATABELA)-NOW*IDDATABELA Como eu posso pegar o ID de uma tabela no Access ? obrigado Marcelo Diniz

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *