MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    Trava em sorteio aleatório

    avatar
    fermoraisc
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 23
    Registrado : 03/08/2017

    Trava em sorteio aleatório Empty Trava em sorteio aleatório

    Mensagem  fermoraisc 6/3/2018, 11:43

    Bom dia pessoal, Criei um módulo que sorteia peças de diferentes classes de acordo com a quantidade de cada classe que eu escolho. Ele só volta a sortear uma mesma peça quando todas da mesma classe já foram sorteadas, porém me surgiu o seguinte problema: Eu possuo 105 peças de classe B fiz 2 sorteios de 44 peças aleatórias, no terceiro como acabaram as peças ele iria repetir as que ja foram sorteadas anteriormente o problema é que ele esta repetindo peças que já constam nesse mesmo sorteio. Por exemplo no sorteio numero 3 ele sorteia 16 peças que nunca foram sorteadas antes, então ele recomeça o sorteio e repete uma dessas 16. Alguém sabe algum tipo de trava ou de chave primaria para ele não repetir uma mesma peça em um mesmo sorteio ?
    Agradeço desde já.

    Código:
    'Sorteio B

    I = 0

    Do While I < QtdeB

        If (DLookup("Count(ID)", "TB_SORTEADOS", "TABELA = 'B' AND COD_RODADA=" & CodRodadaAtualB) = totItensB) Then
            CodRodadaAtualB = CodRodadaAtualB + 1
        End If

        item_aux = DLookup("ID_ITEM", "B", "ID = " & Int(Rnd * totItensB + 1)) 'Busca novo item aleatoriamente
       
        If (IsNull(DLookup("ID", "TB_SORTEADOS", "ID_ITEM = '" & item_aux & "' AND COD_RODADA=" & CodRodadaAtualB))) Then
       
            cod_item_aux = DLookup("ABC", "B", "ID_ITEM = '" & item_aux & "'")
           
            DoCmd.RunSQL "INSERT INTO " & _
                "TB_SORTEADOS(COD_RODADA, COD_SORTEIO, TABELA, DATA, ID_ITEM, COD_ITEM) VALUES (" & _
                CodRodadaAtualB & ", " & _
                CodSorteioAtual & ", " & _
                "'A', " & _
                "'" & DtAtual & "', " & _
                "'" & item_aux & "', " & _
                "'" & cod_item_aux & "'" & _
                ")"
           
           
            I = I + 1
        End If
       
    Loop
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    Trava em sorteio aleatório Empty Re: Trava em sorteio aleatório

    Mensagem  CassioFabre 6/3/2018, 12:53



    .................................................................................
    Só não tem código pra morte!
    avatar
    fermoraisc
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 23
    Registrado : 03/08/2017

    Trava em sorteio aleatório Empty Re: Trava em sorteio aleatório

    Mensagem  fermoraisc 6/3/2018, 13:22

    Bom dia Cassio,
    Obrigada pela rapida resposta. Porém não consegui aplicar o exemplo ao meu caso. No meu caso eu sorteio varias peças ao mesmo tempo, peças já existentes em uma tabela, por exemplo eu tenho 105 peças em uma tabela em um dos sorteios eu sorteio 44 peças no outro mais 44 peças e no seguinte eu sorteio mais 44 então nesse caso o sistema ira sortear as 16 peças restantes que ainda não foram sorteadas e depois ele ira buscar em qualquer uma das 105 peças já que todas ja foram sortedas, o problema é que ele acaba repetindo alguma das 16 peças sorteadas.
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    Trava em sorteio aleatório Empty Re: Trava em sorteio aleatório

    Mensagem  CassioFabre 6/3/2018, 13:50

    Bom dia,

    E se você tiver um campo booleano na tabela que informa quais registros já foram sorteados? No momento do sorteio, você verifica se esse campo é "Sim" para o registro sorteado e caso não seja, ele será "sorteado", caso seja, desconsidera e tenta outro.

    Abraço.


    .................................................................................
    Só não tem código pra morte!
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    Trava em sorteio aleatório Empty Re: Trava em sorteio aleatório

    Mensagem  CassioFabre 6/3/2018, 15:48

    Boa tarde,

    Teste também esse exemplo do avelino. Me parece ser justamente o que precisa, fazendo-se as devidas adaptações.

    usandoaccess.com.br/tutoriais/sons-no-access-bingo.asp?id=1 (copiar e colar no navegador)

    Abraço.


    .................................................................................
    Só não tem código pra morte!
    avatar
    fermoraisc
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 23
    Registrado : 03/08/2017

    Trava em sorteio aleatório Empty Re: Trava em sorteio aleatório

    Mensagem  fermoraisc 7/3/2018, 16:41

    Boa tarde,

    Não consegui entender como adaptar esse exemplo para o meu caso, no meu caso eu possuo varios registros em uma tabela e sorteio varios de uma só vez, meu problema é que eles se repetem. No caso do bingo é sorteado um número por vez e são numeros aleatórios.

    Obrigada
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    Trava em sorteio aleatório Empty Re: Trava em sorteio aleatório

    Mensagem  CassioFabre 7/3/2018, 17:39

    Boa tarde,

    Amigo, poste um modelo.

    Abraço.


    .................................................................................
    Só não tem código pra morte!
    avatar
    fermoraisc
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 23
    Registrado : 03/08/2017

    Trava em sorteio aleatório Empty Re: Trava em sorteio aleatório

    Mensagem  fermoraisc 8/3/2018, 13:25

    Com certeza amigo. Veja se consegue entender.
    Anexos
    Trava em sorteio aleatório AttachmentModelo_Sorteio.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (96 Kb) Baixado 10 vez(es)
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    Trava em sorteio aleatório Empty Re: Trava em sorteio aleatório

    Mensagem  CassioFabre 13/3/2018, 17:19

    Boa tarde,

    De uma olhada no código do botão Sorteio Modificado. Se não entender a lógica, só perguntar, mas deixei alguns comentários no código.

    Abraço.
    Anexos
    Trava em sorteio aleatório AttachmentModelo Sorteio Modificado.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (367 Kb) Baixado 34 vez(es)


    .................................................................................
    Só não tem código pra morte!
    avatar
    fermoraisc
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 23
    Registrado : 03/08/2017

    Trava em sorteio aleatório Empty Re: Trava em sorteio aleatório

    Mensagem  fermoraisc 14/3/2018, 11:27

    Muitissimo obrigada, seu código está muito bom, o único problema é aquela trava que não deixa sortear se todos os itens já tiverem sido sorteados e no caso quando todos os itens tiverem sido sorteados eu teria que sortea-los de novo, eles só não podem se repetir em um mesmo sorteio. E é possivel colocar esses números sorteados em uma tabela ? ou seria possível só em TextBox ? É que nesse caso eu preciso deles em uma tabela pois envio esses números sortedaos para um outro banco de dados.


    Obrigada
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    Trava em sorteio aleatório Empty Re: Trava em sorteio aleatório

    Mensagem  CassioFabre 14/3/2018, 11:47

    Bom dia,

    Voce pode fazer de duas formas:

    - Copiar os items para a tabela "Itens Sorteados", conforme já vinha fazendo no seu código. Eu usei o textbox só porque foi mais prático pra mim, você vai ter que adaptar ao seu caso concreto. E então, a partir dessa segunda tabela, passar os registros para o outro banco de dados.

    - Fazer uma verificação caso todos os itens da tabela tenham sido marcados como "sorteado". Basta contar o número de registros que tenham sorteado = false, caso seja = 0 então você limpa todos os campos, ou seja, faz todos os registros terem sorteado = false. Aí você poderá "resortear" todos os registros. Após cada sorteio, você envia os itens que tenham sorteado = true para seu outro banco de dados. Isso evitaria uma tabela secundária, o tráfego de copiar um registro para outra tabela e seria muito mais prático. Eu optaria por essa segunda opção.

    Abraço.


    .................................................................................
    Só não tem código pra morte!

    Conteúdo patrocinado


    Trava em sorteio aleatório Empty Re: Trava em sorteio aleatório

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 14:35