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]Contar argumentos numa função

    Compartilhe

    IuriEmanuel
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 23/08/2018

    [Resolvido]Contar argumentos numa função

    Mensagem  IuriEmanuel em 24/9/2018, 21:32

    É Possível contar os argumentos de uma função? Exemplo ao passar os parâmetros para um função, gostaria de uma maneira de testar esses parâmetros em um laço condicional, mas para isso preciso de uma função que conte e identifique cada parâmetro que a função recebeu e percorrer-los, para não ficar com vários IFs, e seria mais dinâmico. Alguém tem uma sugestão?
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5589
    Registrado : 15/03/2013

    Re: [Resolvido]Contar argumentos numa função

    Mensagem  ahteixeira em 24/9/2018, 23:29

    Olá,

    Talvez passar os parâmetros apenas num único (parâmetro) com um indicador de separação tipo |
    Depois usar o split do separador para uma array talvez se consiga obter o pretendido.
    O que parece?

    Abraço

    IuriEmanuel
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 23/08/2018

    Re: [Resolvido]Contar argumentos numa função

    Mensagem  IuriEmanuel em 24/9/2018, 23:46

    Eu já utilizei uma Array, funcionou, testei um Msgbox (Arg(0), 1, 2, 3 [...]) e retorna o valor da Array, que é justamente o valor da variável. Porém eu gostaria também que no laço, fosse exibido o nome do campo que está nulo ou vazio exemplo:

    For i = 0 To 7 ( PS: 7 Argumentos, por exemplo )
    If IsNull(Arg(i)) Or IsEmpty(Arg(i)) Then
    Msgbox ("O Campo " & NOME DO ARGUMENTO & " é nulo ou vazio, por favor, preencha-o.")
    End If
    Next

    Endenteu? E Gostaria de uma outra estrutura condicional para que após o término do laço para que quando não exisitir mas nenhum campo vazio ou nulo, ele insere as informações, através de um INSERT.

    Meu código está atualmente assim:
    Public Sub MovPessoa(PessID, DocID, Vencimento, Parcela, Tipo, Descricao, Modalidade, Valor, Estado)
    If IsNull(PessID) Or IsNull(Vencimento) Or IsNull(Parcela) Or IsNull(Tipo) Or IsNull(Descricao) Or IsNull(Modalidade) Or IsNull(Valor) Or IsNull(Estado) Then
    MsgBox ("Preencha os campos")
    Else
    MsgBox ("Sucesso")
    End If
    End Sub

    Porém, ele não detecta quando todos os campos estiverem completos para inserir, e nem mostra o campo que está vazio, caso eu fizesse tudo isso no If, ficaria muito grande, então procuro fazer isto da maneira que citei acima.
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5589
    Registrado : 15/03/2013

    Re: [Resolvido]Contar argumentos numa função

    Mensagem  ahteixeira em 25/9/2018, 08:30

    Olá Iuri,

    Para o que pretende, talvez seja melhor de outra forma, veja:
    [Você precisa estar registrado e conectado para ver este link.]

    Abraço

    IuriEmanuel
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 23/08/2018

    Re: [Resolvido]Contar argumentos numa função

    Mensagem  IuriEmanuel em 25/9/2018, 11:34

    Olá, Grato pelos esforços.
    Resolveria, mas se a função fosse direta no form. Acontece é que eu tenho vários "forms" que só fazem a chamada da função contida num módulo, tipo rotina. O Que eu queria basicamente era que os argumentos fossem testados dentro da função, verificando se cada argumento não é nulo, dentro dela, e retornar uma mensagem caso esteja nulo, caso contrário ela insere. Exemplo:

    Na Biblioteca de Rotina/Módulo
    Private Sub InsereComissao(PessoaID, Vencimento, Comissao) Then
    Testar se os três parametros estão preenchidos.
    Caso não estejam: Msgbox ("Preencha o campo/parametro " & Parametro)
    Caso esteja: Insere as informações através de um Insert e envia mensagem: Msgbox("Comissao gerada com sucesso!")

    End Sub
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5589
    Registrado : 15/03/2013

    Re: [Resolvido]Contar argumentos numa função

    Mensagem  ahteixeira em 25/9/2018, 12:08

    Olá Iuri,

    Compreendo, mas mesmo sendo num Modulo a chamada é efetuada do form que está em uso.
    Ora, poderia validar os campos antes da chamada.

    Talvez seja melhor montar um pequeno exemplo do que pretende para se testar.

    Abraço



    IuriEmanuel
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 23/08/2018

    Re: [Resolvido]Contar argumentos numa função

    Mensagem  IuriEmanuel em 25/9/2018, 12:29

    Muito Obrigado!
    Terei de fazer a verificação do campo antes da chamada mesmo. Estava pensando em fazer direto na função para economizar linha nos forms, mas é impossível percorrer argumento por argumento, da forma que se pode percorrer controle por controle do form. Acho melhor deixar do jeito tradicional como você disse mesmo rsrs

    Obrigado!
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5589
    Registrado : 15/03/2013

    Re: [Resolvido]Contar argumentos numa função

    Mensagem  ahteixeira em 25/9/2018, 14:43

    Olá Iuri,

    Sim, acho que vai ficar bem com a dica da mensagem nº 4.

    Se ficou esclarecido, não se esqueça de dar o tópico como Resolvido, veja como fazer:
    [Você precisa estar registrado e conectado para ver este link.]

    Abraço

    IuriEmanuel
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 23/08/2018

    Re: [Resolvido]Contar argumentos numa função

    Mensagem  IuriEmanuel em 20/10/2018, 20:05

    Esqueci de marcar como Resolvido rs
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5589
    Registrado : 15/03/2013

    Re: [Resolvido]Contar argumentos numa função

    Mensagem  ahteixeira em 21/10/2018, 20:35

    cheers

      Data/hora atual: 16/11/2018, 04:00