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

4 participantes

    [Resolvido]Function funciona em VBA mas não em campo de form

    avatar
    alecmuller
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 03/12/2019

    [Resolvido]Function funciona em VBA mas não em campo de form Empty [Resolvido]Function funciona em VBA mas não em campo de form

    Mensagem  alecmuller 3/8/2021, 19:42

    Boa tarde senhores,

    Tenho uma tabela com campo multivalor, a qual não posso usar para fazer classificação ou filtragem.

    Meu objetivo, então, é passar o valor deste campo (pelo que percebi, possui propriedade semelhante a uma array) para um novo campo desvinculado, com tipo de destino de string.
    Para isso, criei uma function para ver um array e trazer o nome dos funcionários correspondentes. Funcionou perfeitamente na janela de verificação imediata, mas estou com problemas ao usar no form.

    Criei o novo campo desvinculado e tentei inserir na fonte de controle dele a função, com o construtor de expressões, usando o seguinte: ArrayToText([Port_Funcionario])
    Tentei também usando [Port_Funcionario.Value], com e sem aspas. De nenhum jeito funcionou. O erro que dá ao usar sem aspas é de tipos incompatíveis e ao depurar ele destaca a linha do "ReDim newArray"...

    Tentei colocar no evento ao abrir do form:
    Me.Texto62 = ArrayToText(Me.Port_Funcionario.Value), mas funciona apenas para a primeira linha. Todas as outras seguem com a mesma informação da primeira linha.

    Em suma, a function funciona perfeitamente na janela de verificação e em código VBA, mas não diretamente no construtor de expressões. Podem avaliar meu código e me ajuda a fazer funcionar adequadamente?

    Segue o código:

    Código:
    Public Function ArrayToText(NomeArray As Variant)
    'Função elaborada por Alec R. Müller
    'Use para buscar o nome dos funcionários contidos no array e retornar o valor como texto.

    Dim FuncNome As String
    Dim i As Integer
    Dim myArray As Variant

    If Not IsNull(NomeArray) Then
        Dim newArray() As String
        ReDim newArray(UBound(NomeArray))    'Foi necessário redimensionar a variável. Sem o tamanho declarado, dá erro de fora de subscrição.
                                             'Se informar o tamanho da array diretamente na declaração Dim dá erro solicitando um valor constante.
        For i = LBound(NomeArray) To UBound(NomeArray)
            newArray(i) = DLookup("Func_Nome", "Funcionario", "Func_Cod = " & NomeArray(i))
            If i = 0 Then
                FuncNome = newArray(i)
            Else
                FuncNome = a & " ; " & newArray(i)
            End If
        Next i
        ArrayToText = FuncNome
    End If

    End Function
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3707
    Registrado : 22/11/2016

    [Resolvido]Function funciona em VBA mas não em campo de form Empty Re: [Resolvido]Function funciona em VBA mas não em campo de form

    Mensagem  DamascenoJr. 3/8/2021, 21:37

    Código:
    Me.Texto62 = Join(Me.Port_Funcionario.Value, " ; ")


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    avatar
    alecmuller
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 03/12/2019

    [Resolvido]Function funciona em VBA mas não em campo de form Empty Re: [Resolvido]Function funciona em VBA mas não em campo de form

    Mensagem  alecmuller 4/8/2021, 12:49

    Obrigado pela resposta Damasceno!

    Coloquei no evento ao abrir do form assim como você passou. Acontece o mesmo usar a function que eu criei. Abre o form e a informação da primeira linha repete para todas as outras no campo Texto62.

    Tem alguma forma de usar esse Join no construtor de expressões? Se sim, já resolve minha vida.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10765
    Registrado : 04/11/2009

    [Resolvido]Function funciona em VBA mas não em campo de form Empty Re: [Resolvido]Function funciona em VBA mas não em campo de form

    Mensagem  JPaulo 4/8/2021, 13:59

    Tratando-se de um formulario continuo, só funciona com formatação condicional nesse campo.
    Ou criar um campo na sua tabela para receber o valor e inserir o valor com VBA.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Function funciona em VBA mas não em campo de form Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Function funciona em VBA mas não em campo de form Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Function funciona em VBA mas não em campo de form Folder_announce_new Instruções SQL como utilizar...
    avatar
    alecmuller
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 03/12/2019

    [Resolvido]Function funciona em VBA mas não em campo de form Empty Re: [Resolvido]Function funciona em VBA mas não em campo de form

    Mensagem  alecmuller 4/8/2021, 15:10

    Obrigado pela contribuição JPaulo!

    O formulário em questão é dividido.
    O que quero é apenas trazer para uma nova caixa de texto do form, como string, o que está no campo multivalorado. Portanto, não preciso e nem quero armazenar no banco os valores que essa caixa de texto vai receber.
    Quero que apareçam apenas para que eu possa usar a filtragem através dos nomes, que não é possível no campo já existente justamente por ser multivalorado.

    Foi por conta disso que criei a function, que funcionou perfeitamente em vba, mas não sei como aplicar para que apareça corretamente em todas as linhas.

    Abaixo segue uma foto de como fica ao usar, em "Ao abrir" do form:
    Código:
    me.Texto62 = arraytotext(me.Port_Funcionario.Value)

    [Resolvido]Function funciona em VBA mas não em campo de form Captur10


    Como podem ver, fica repetindo o nome da primeira pessoa para todas as outras linhas na caixa Texto62.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10765
    Registrado : 04/11/2009

    [Resolvido]Function funciona em VBA mas não em campo de form Empty Re: [Resolvido]Function funciona em VBA mas não em campo de form

    Mensagem  JPaulo 4/8/2021, 15:34

    No control Source dessa caixa de texto, colque assim para testar

    [Resolvido]Function funciona em VBA mas não em campo de form 04-08-10


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Function funciona em VBA mas não em campo de form Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Function funciona em VBA mas não em campo de form Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Function funciona em VBA mas não em campo de form Folder_announce_new Instruções SQL como utilizar...
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2605
    Registrado : 13/12/2016

    [Resolvido]Function funciona em VBA mas não em campo de form Empty Re: [Resolvido]Function funciona em VBA mas não em campo de form

    Mensagem  Alexandre Fim 4/8/2021, 16:43

    Alec,

    Qual a real necessidade de utilizar campos multivalores?
    Qual a tua necessidade?


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Function funciona em VBA mas não em campo de form Setinf11
    Sistemas e Tecnologia Ltda
    avatar
    alecmuller
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 03/12/2019

    [Resolvido]Function funciona em VBA mas não em campo de form Empty Re: [Resolvido]Function funciona em VBA mas não em campo de form

    Mensagem  alecmuller 4/8/2021, 17:19

    JPaulo, tentei fazer isso, mas o filtro não funciona. Simplesmente fica bloqueado.


    Alexandre, preciso do campo multivalor por ser uma relação N pra N. Não consegui achar uma forma mais prática de fazer os lançamentos do que usando campo multivalor.
    Se trata de uma tabela de portarias, na qual posso fazer N lançamentos e em cada lançamento pode haver um ou mais funcionários envolvidos.
    Sobre a necessidade que me fez abrir este tópico, é a seguinte..
    Em meu formulário tenho alguns campos. Em quase todos eu consigo aplicar filtro normalmente, exceto neste multivalor. Então criei a função que mandei mais pra cima para converter os valores do campo para texto. Minha ideia seria usar em um campo desvinculado para poder usar o filtro.

    Se tiverem alguma ideia de como manter a praticidade sem usar um campo multivalor, será muito bem-vinda! Este tipo de campo ajuda por um lado, mas por outro dá um trabalho danado..
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3707
    Registrado : 22/11/2016

    [Resolvido]Function funciona em VBA mas não em campo de form Empty Re: [Resolvido]Function funciona em VBA mas não em campo de form

    Mensagem  DamascenoJr. 4/8/2021, 22:28

    Veja o Join sem repetição e também a filtragem via campo de valores multiplos.
    Anexos
    [Resolvido]Function funciona em VBA mas não em campo de form AttachmentbdValoresMultiplos.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (36 Kb) Baixado 18 vez(es)


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

    alecmuller gosta desta mensagem

    avatar
    alecmuller
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 03/12/2019

    [Resolvido]Function funciona em VBA mas não em campo de form Empty Re: [Resolvido]Function funciona em VBA mas não em campo de form

    Mensagem  alecmuller 5/8/2021, 12:31

    Damasceno, muuuuitoooo obrigado cara!

    Com essa função vai me ajudar demaaaiss!
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3707
    Registrado : 22/11/2016

    [Resolvido]Function funciona em VBA mas não em campo de form Empty Re: [Resolvido]Function funciona em VBA mas não em campo de form

    Mensagem  DamascenoJr. 6/8/2021, 00:45

    O fórum agradece o retorno. Sucesso.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

      Data/hora atual: 6/10/2022, 08:23