Olá novamente a todos! Tenho uma dúvida e gostaria de saber como resolver se for possível. Eu tenho um formulário que é aberto como consulta de registros para determinados parâmetros que eu coloco. O que eu gostaria era de que quando eu abrisse esse formulário eu digitasse a quantidade de registros que eu quero que apareça e que esses registros sejam aleatórios. Exemplo, digamos que eu tenha 300 registros de pessoas que moram em uma cidade X, então eu queria que quando o formulário da cosulta fosse aberto, eu digitasse ou antes ou depois o número 40 e ai, apareceria 40 registros sorteados aleatoriamente do total de 300 que moram na cidade X. Será se é possível isso? Se for possível, gostaria de uma ajuda
2 participantes
Registros Aleatórios
emacsabino- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 190
Registrado : 29/08/2011
- Mensagem nº1
Registros Aleatórios
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
- Mensagem nº2
Re: Registros Aleatórios
Dê uma pesquisada por rnd no vba do Access. Você pode criar uma consulta com os registros da cidade e implementar um campo com um número para que não tenha buracos na contagem e usar esses número no rnd. Ou então fazer um loop pela tabela saltando números quando necessário. Por exemplo, se a sequência for 5 - 7 - 15 - 38 - 75 - 225 o loop pode saltar os números entre esses e depois escolher um aleatório entre esses existentes.
.................................................................................
Meu novo site: www.vcssistemas.com.br Clique aqui e veja um vídeo que explica como fazer pesquisas no forum. DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo: 1 - faça uma cópia do aplicativo 2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar 3 - use o Compactar/Reparar 4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem) Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário. Positive as mensagens que achar útil, no canto superior direito delas. |
emacsabino- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 190
Registrado : 29/08/2011
- Mensagem nº3
Re: Registros Aleatórios
Críquio obrigado por sua boa vontade em querer me ajudar, mas eu não entendi bem o que você quis dizer, eú até dei uma olha em alguns tópicos e exemplos de sorteios aleatórios mas não consegui fazer isso com os meus registros. Se você pudesse mais claro e mais detalhista, eu agradeço. E esse "rnd" o que significa?
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
- Mensagem nº4
Re: Registros Aleatórios
Amigão, como eu disse, pode pesquisar por rnd no F1 do vba do Access que conseguirás entender o que ele significa e o que ele faz. Estou meio sem tempo para elaborar um passo a passo. Talvez eu encontre algo mais ou menos nesse sentido entre meus trabalhos. Se encontrar, eu posto aqui. Mas vai pesquisando o F1 do vba como eu falei para entender o rnd.
.................................................................................
Meu novo site: www.vcssistemas.com.br Clique aqui e veja um vídeo que explica como fazer pesquisas no forum. DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo: 1 - faça uma cópia do aplicativo 2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar 3 - use o Compactar/Reparar 4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem) Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário. Positive as mensagens que achar útil, no canto superior direito delas. |
emacsabino- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 190
Registrado : 29/08/2011
- Mensagem nº5
Re: Registros Aleatórios
Eu fiz aqui um estudo essa função que você colocou Críquio, mas não consegui ter êxito
emacsabino- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 190
Registrado : 29/08/2011
- Mensagem nº6
Re: Registros Aleatórios
Críquio eu tentei fazer isso no código SQL da consulta para aprensentar os registros aleatórios:
SELECT Cidades.Código, Cidades.Instituição, Cidades.Ano, Cidades.Mês, Cidades.Cargo, Cidades.Abrangência, Cidades.Estado, Cidades.Município, Cidades.Cidade, Cidades.[A)], Cidades.[B)], Cidades.[C)], Cidades.[D)], Cidades.[E)], Cidades.Bairro, Cidades.Escolher, Cidades.Profissão, Cidades.Verificação
FROM Cidades ORDER BY Rnd(Int(Now()*[Código])-Now()*[Código]);
WHERE (((Cidades.Bairros)=Formulários!PorBairros!Combinação13));
Só que aparece assim a mensagem quando eu salvo: "caracteres encontrados após final de instrução sql"
O código sem usar a função rnd antes estava assim:
SELECT Cidades.Código, Cidades.Instituição, Cidades.Ano, Cidades.Mês, Cidades.Cargo, Cidades.Abrangência, Cidades.Estado, Cidades.Município, Cidades.Cidade, Cidades.[A)], Cidades.[B)], Cidades.[C)], Cidades.[D)], Cidades.[E)], Cidades.Bairro, Cidades.Escolher, Cidades.Profissão, Cidades.Verificação
FROM Cidades
WHERE (((Cidades.Bairros)=Formulários!PorBairros!Combinação13));
Então tou querendo primeiro saber onde coloco o RND, para ai depois ver no que dá
SELECT Cidades.Código, Cidades.Instituição, Cidades.Ano, Cidades.Mês, Cidades.Cargo, Cidades.Abrangência, Cidades.Estado, Cidades.Município, Cidades.Cidade, Cidades.[A)], Cidades.[B)], Cidades.[C)], Cidades.[D)], Cidades.[E)], Cidades.Bairro, Cidades.Escolher, Cidades.Profissão, Cidades.Verificação
FROM Cidades ORDER BY Rnd(Int(Now()*[Código])-Now()*[Código]);
WHERE (((Cidades.Bairros)=Formulários!PorBairros!Combinação13));
Só que aparece assim a mensagem quando eu salvo: "caracteres encontrados após final de instrução sql"
O código sem usar a função rnd antes estava assim:
SELECT Cidades.Código, Cidades.Instituição, Cidades.Ano, Cidades.Mês, Cidades.Cargo, Cidades.Abrangência, Cidades.Estado, Cidades.Município, Cidades.Cidade, Cidades.[A)], Cidades.[B)], Cidades.[C)], Cidades.[D)], Cidades.[E)], Cidades.Bairro, Cidades.Escolher, Cidades.Profissão, Cidades.Verificação
FROM Cidades
WHERE (((Cidades.Bairros)=Formulários!PorBairros!Combinação13));
Então tou querendo primeiro saber onde coloco o RND, para ai depois ver no que dá
emacsabino- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 190
Registrado : 29/08/2011
- Mensagem nº7
Re: Registros Aleatórios
Pessoal, deu certo os registros aleatórios, agora só tou querendo descobrir como acrescentar a opção em que eu digito a quantidade de registros que eu quero que apareça, pois quando clico na consulta, mostra todos os registros de forma aleatória, mas eu tou querendo que antes que abra eu digite o valor referente a quantidade de registros que eu quero que apareça
Convidad- Convidado
- Mensagem nº8
Re: Registros Aleatórios
Função Rnd
Retorna um Single que contém um número aleatório.
Sintaxe
Rnd[(number)]
O argumento opcional number é um Single ou qualquer expressão numérica válida.
Valores retornados
Comentários:
A função Rnd retorna um valor menor que 1, mas maior ou igual a zero.
O valor de number determina como Rnd gera um número aleatório:
Para qualquer semente inicial dada, a mesma seqüência de números é gerada porque cada chamada sucessiva à função Rnd utiliza o número anterior como semente para o próximo número da seqüência.
Antes de chamar Rnd, utilize a instrução Randomize sem argumento para inicializar o gerador de números aleatórios com uma semente baseada no cronômetro do sistema.
Para produzir números inteiros aleatórios em um dado intervalo, utilize esta fórmula:
Int((limitesuperior - limiteinferior + 1) * Rnd + limiteinferior)
Aqui, limitesuperior é o número mais alto do intervalo e limiteinferior é o número mais baixo.
Observação:
Para repetir seqüências de números aleatórios, chame Rnd com um argumento negativo imediatamente antes de utilizar Randomize com um argumento numérico. Utilizar Randomize com o mesmo valor de number não repete a seqüência anterior.
Retorna um Single que contém um número aleatório.
Sintaxe
Rnd[(number)]
O argumento opcional number é um Single ou qualquer expressão numérica válida.
Valores retornados
Se number for Rnd gera
Menor que zero O mesmo número todas as vezes, utilizando number como semente.
Maior que zero O próximo número aleatório na seqüência.
Igual a zero O número gerado mais recentemente.
Não fornecido O próximo número aleatório na seqüência.
Comentários:
A função Rnd retorna um valor menor que 1, mas maior ou igual a zero.
O valor de number determina como Rnd gera um número aleatório:
Para qualquer semente inicial dada, a mesma seqüência de números é gerada porque cada chamada sucessiva à função Rnd utiliza o número anterior como semente para o próximo número da seqüência.
Antes de chamar Rnd, utilize a instrução Randomize sem argumento para inicializar o gerador de números aleatórios com uma semente baseada no cronômetro do sistema.
Para produzir números inteiros aleatórios em um dado intervalo, utilize esta fórmula:
Int((limitesuperior - limiteinferior + 1) * Rnd + limiteinferior)
Aqui, limitesuperior é o número mais alto do intervalo e limiteinferior é o número mais baixo.
Observação:
Para repetir seqüências de números aleatórios, chame Rnd com um argumento negativo imediatamente antes de utilizar Randomize com um argumento numérico. Utilizar Randomize com o mesmo valor de number não repete a seqüência anterior.
emacsabino- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 190
Registrado : 29/08/2011
- Mensagem nº9
Re: Registros Aleatórios
Eu já consegui usar a Função, companheiro Norbs, os registros estão aparecendo aleatoriamente, no entanto eu quero ter a opção de limitar a quantidade registros que aparece quando eu faço a consulta. Tem como?
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
- Mensagem nº10
Re: Registros Aleatórios
Dê uma consultada na sala de códigos sql. Lá tem várias instruções para você aperfeiçoar sua sintaxe.
.................................................................................
Meu novo site: www.vcssistemas.com.br Clique aqui e veja um vídeo que explica como fazer pesquisas no forum. DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo: 1 - faça uma cópia do aplicativo 2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar 3 - use o Compactar/Reparar 4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem) Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário. Positive as mensagens que achar útil, no canto superior direito delas. |
emacsabino- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 190
Registrado : 29/08/2011
- Mensagem nº11
Re: Registros Aleatórios
Críquio eu encontrei Repositório de Códigos VBA e SQL para Ms Access , onde tem do JPaulo instruções SQL como utilizar, só que em nenhuma instrução que ele colocou eu encontrei falando sobre quantidade de registros. Se eu tiver procurando no lugar errado me avisa, pq não sei onde fica essa sala