MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Função para buscar um número aleatório de um intervalo

    Compartilhe

    elmanojr
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 20/07/2017

    [Resolvido]Função para buscar um número aleatório de um intervalo

    Mensagem  elmanojr em 28/8/2018, 21:11

    Ola pessoal Tudo bom?
    Estou meio confuso, poderia me ajudar? Tenho a ideia na cabeça mas nao estou conseguindo coloca-la em pratica.
    Seguinte quero simular uma rolagem de dados usando a função rdn()... ou random ou randomize...
    Quero criar uma função onde passo os valores possíveis no dado. Ex um dado de 6 lados os valores serão de 01 ate 06, um dado de 20 lados valores serão de 01 ate 20....
    Então pensei assim

    Function random_dados (ninicio as interger, nfim as interger) as interger
    ' AQUI como coloco para a função sortear um numero entre os valores de ninicio e nfim?
    Só preciso que a função retorne um numero aleatório entre o intervalo passado,
    End Function

    Desde ja obrigado pela ajuda!
    PS desculpe minha ignorância mas deu um branco aqui e nao consigo ir a diante!
    PS2 Os dados são de diferentes lados e tamanhos (4,6,8,10,12,20 e 100) são dados de porcentagens para um jogo de "RPG"
    avatar
    livio.sfranca
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 149
    Registrado : 09/01/2018

    Re: [Resolvido]Função para buscar um número aleatório de um intervalo

    Mensagem  livio.sfranca em 28/8/2018, 21:50

    Não sei se entendi direito,

    Tente assim:

    Código:
    Function RandomDados(nMin As Integer, nMax As Integer) As Integer
        RandomDados = Int((nMax * Rnd()) + 1)
    End Function

    Para chamar a função, escreva RandomDados(1, 6).

    elmanojr
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 20/07/2017

    Re: [Resolvido]Função para buscar um número aleatório de um intervalo

    Mensagem  elmanojr em 29/8/2018, 07:34

    Ok Beleza deu certo...
    Fiz um Select e conforme a escolha ja chama a função e passa o parametro.

    Agora so preciso mandar o resultado para uma variavel ou direto para um campo no formulario
    algo mais ou menos assim:
    Código:
    ============================================
    Private Sub cboRolarDados_Click()
    On Error GoTo Err_Handler

    'Crio as variaveis
    Dim ResultadoRolagem As Integer

    'Faço um Select Case no quadro Dados para saber qual foi selecionado
    Select Case Me.qdroTipoDados
           Case 1
           'Significa que o quadro Tipo Dados selecionou D4
           'chamo a função randomize e passo os parametros e o resultado para o campo txtResultadoRolagem
           Call RandomDados(1, 4)
           Me.txtResultadoRolagem = ResultadoRolagem
          [color=#ff33cc]É Aqui que da erro, como fazer?[/color]
           Case 2
           'Significa que o quadro Tipo Dados selecionou D6
           'chamo a função randomize e passo os parametros e o resultado para o campo txtResultadoRolagem
            Call RandomDados(1, 6)
           Case 3
           'Significa que o quadro Tipo Dados selecionou D8
           'chamo a função randomize e passo os parametros e o resultado para o campo txtResultadoRolagem
            Call RandomDados(1, 8)
           Case 4
           'Significa que o quadro Tipo Dados selecionou D10
           'chamo a função randomize e passo os parametros e o resultado para o campo txtResultadoRolagem
           Call RandomDados(1, 10)
           Case 5
           'Significa que o quadro Tipo Dados selecionou D12
           'chamo a função randomize e passo os parametros e o resultado para o campo txtResultadoRolagem
           Call RandomDados(1, 12)
           Case 6
           'Significa que o quadro Tipo Dados selecionou D20
           'chamo a função randomize e passo os parametros e o resultado para o campo txtResultadoRolagem
            Call RandomDados(1, 20)
           Case 7
           'Significa que o quadro Tipo Dados selecionou D100
           'chamo a função randomize e passo os parametros e o resultado para o campo txtResultadoRolagem
            Call RandomDados(1, 100)
           
           Case Else
               GoTo Exit_Here
    End Select
       
    Exit_Here:        'Porta de Saída
       Exit Sub

    Err_Handler:     'Tratando o Erro
       Call fncMensagemCri("Erro # " & str(Err.Number) & vbCrLf & "gerado na " & Err.Source & vbCrLf & vbCrLf & "Descrição: " & Err.Description, "Avise o Administrador do Sistema - Msg Erro")
       Resume Exit_Here
    End Sub
    ==========================================================
    Preciso passar o resultado do retorno da função para a variavel ResultadoRolagem ou para caixa de texto Me.txtResultadoRolagem
    Deu para entender ?

    Por enquanto MUITO OBRIGADO ! esta dando certo ! bounce
    avatar
    livio.sfranca
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 149
    Registrado : 09/01/2018

    Re: [Resolvido]Função para buscar um número aleatório de um intervalo

    Mensagem  livio.sfranca em 29/8/2018, 12:29

    Bom dia,

    O erro está ocorrendo pois você não definiu a variável ResultadoRolagem.

    Em cada um dos Case's você precisará defini-la, ou coloque assim:

    Case 1
          'Significa que o quadro Tipo Dados selecionou D4
          'chamo a função randomize e passo os parametros e o resultado para o campo txtResultadoRolagem
          Me.txtResultadoRolagem = RandomDados(1, 4)

    elmanojr
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 20/07/2017

    Re: [Resolvido]Função para buscar um número aleatório de um intervalo

    Mensagem  elmanojr em 29/8/2018, 18:14

    Ola Livio,

    Perfeito funcionou, Muito obrigado
    Cara estou ficando velho as vezes da um branco, hahahahahaha

    Grande abraço
    avatar
    livio.sfranca
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 149
    Registrado : 09/01/2018

    Re: [Resolvido]Função para buscar um número aleatório de um intervalo

    Mensagem  livio.sfranca em 29/8/2018, 18:17

    Muito bom,

    Se resolvido, por favor marque o tópico como Resolvido.


    elmanojr
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 20/07/2017

    Re: [Resolvido]Função para buscar um número aleatório de um intervalo

    Mensagem  elmanojr em 29/8/2018, 18:48

    Ola Livio,
    Onde marco o topico como resolvido, sou novato por aqui........

    Obrigado Novamente

    Tem um botaão no final da pagina "Resolvido" mas nao acontece nada qdo clico nele
    avatar
    livio.sfranca
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 149
    Registrado : 09/01/2018

    Re: [Resolvido]Função para buscar um número aleatório de um intervalo

    Mensagem  livio.sfranca em 29/8/2018, 18:55

    Do jeito que fez, funcionou. Mas para tópicos futuros, siga as instruções do link:

    [Você precisa estar registrado e conectado para ver este link.]

    Bom trabalho!

      Data/hora atual: 11/12/2018, 12:05