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

    [Resolvido]Restringir valores já lançados em combobox dentro de subFormulário folha de dados.

    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    [Resolvido]Restringir valores já lançados em combobox dentro de subFormulário folha de dados. Empty Restringir valores já lançados em combobox dentro de subFormulário folha de dados.

    Mensagem  Leandro 5/6/2013, 18:48

    Boa tarde!

    Tenho uma caixa de combinação em um subForm folha de dados, no evento após atualizar da mesma coloquei esse comando:

    strCod = strCod & Me!Servico.Value & ","

    Ele monta as strings com esse formato: 10,30,50,70

    strCod é uma variável Global, e o conteúdo da string é lançado em uma Função ► RestringeCombo()

    Até aqui tudo vai certo, testei a função na janela imediata e resulta como esperado, porém fiz o teste de restrição em uma consulta usando: Not In(RestringeCombo()) e a cosulta retorna sem registros. O que está errado? Ou isso não é possível?

    Obrigado

    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    Registrado : 04/04/2010

    [Resolvido]Restringir valores já lançados em combobox dentro de subFormulário folha de dados. Empty Re: [Resolvido]Restringir valores já lançados em combobox dentro de subFormulário folha de dados.

    Mensagem  Avelino Sampaio 5/6/2013, 22:49

    E a consulta vai alimentar quem ? Um relatório ? Pergunto isso por que vc pode realizar a filtragem na chamada do relatório ou formulário. Exemplo:

    DoCmd.OpenReport "NomeRelatório", acViewPreview, , "NomeCampo not In(" & RestringeCombo() & ")"

    Aguardamos


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    [Resolvido]Restringir valores já lançados em combobox dentro de subFormulário folha de dados. Empty Re: [Resolvido]Restringir valores já lançados em combobox dentro de subFormulário folha de dados.

    Mensagem  Leandro 6/6/2013, 01:58

    Boa noite Avelino,

    É... escrevi, escrevi e esqueci de mencionar que o que eu quero filtrar á a própria combo... Embarassed

    Veja, minha intenção é que ao preencher da combo na subform ela não mostre os valores que já foram selecionados anteriormente.

    Atualmente através dessa mesma string que é montada, é verificado se o código já foi lançado e se foi, o mesmo é deletado.

    Será possível restringir a própria combo Avelino?

    Muito obrigado pelo interesse.

    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    Registrado : 04/04/2010

    [Resolvido]Restringir valores já lançados em combobox dentro de subFormulário folha de dados. Empty Re: [Resolvido]Restringir valores já lançados em combobox dentro de subFormulário folha de dados.

    Mensagem  Avelino Sampaio 6/6/2013, 11:15

    Em vez de vc indicar a consulta gráfica como origem da combobox, use a escrita SQL. Limpe a propriedade "origem da linha" da sua combo e use o evento "ao receber foco":

    Private Sub Combinação4_GotFocus()
    Me!Combinação4.RowSource = "SELECT NomeCampoA, NomeCampoB FROM Nometabela WHERE NomeCampo not in (" & RestringeCombo() & ");"
    End Sub

    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    [Resolvido]Restringir valores já lançados em combobox dentro de subFormulário folha de dados. Empty Re: [Resolvido]Restringir valores já lançados em combobox dentro de subFormulário folha de dados.

    Mensagem  Leandro 6/6/2013, 11:31

    Vou testar e dou retorno assim que verificado.

    Obrigado

    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    [Resolvido]Restringir valores já lançados em combobox dentro de subFormulário folha de dados. Empty Re: [Resolvido]Restringir valores já lançados em combobox dentro de subFormulário folha de dados.

    Mensagem  Leandro 6/6/2013, 13:16

    Avelino!!! SUCESSO ABSOLUTO!!!

    Ficou exatamente como eu quero. Tive que fazer uma adaptação pelo seguinte: No primeiro lançamento a variável strCod está em nulo, e a função In() não aceita isso, aí montei um condicional simples que muda a string:


    If Me.CurrentRecord = 1 Then
    strServicoNormal = "SELECT CODSERVICO, CODRECURSO, VU, TIPOEQUIPE, DescModulo, DescBloco, DescServico, TIPOSERVICO, Uf, VUComDesconto FROM TabQuantitativo GROUP BY CODSERVICO, CODRECURSO, VU, TIPOEQUIPE, DESCMODULO, DESCBLOCO, DESCSERVICO, TIPOSERVICO, UF, VuComDesconto HAVING CODRECURSO=" & Me!Recurso & "AND DESCMODULO<>'" & "Pavimentação" & "'"
    Else
    strServicoNormal = "SELECT CODSERVICO, CODRECURSO, VU, TIPOEQUIPE, DescModulo, DescBloco, DescServico, TIPOSERVICO, Uf, VUComDesconto FROM TabQuantitativo GROUP BY CODSERVICO, CODRECURSO, VU, TIPOEQUIPE, DESCMODULO, DESCBLOCO, DESCSERVICO, TIPOSERVICO, UF, VuComDesconto HAVING CODSERVICO Not In (" & RestringeCombo() & ")" & "AND CODRECURSO=" & Me!Recurso & "AND DESCMODULO<>'" & "Pavimentação" & "'"
    End If


    O intuíto dessa rstrição é impedir que o usuário insira duas vezes o mesmo código.

    Até agora eu restringia isso com esse código:

    If InStr(InStr(strCodLanc, Me!Servico) + 1, strCodLanc, Me!Servico) > 1 Then
    MsgBox "Esse código já foi lançado para esse protocolo!", vbInformation, "Código duplicado"
    DoCmd.CancelEvent
    DoCmd.RunCommand acCmdDeleteRecord
    Else
    If IsNull(Me!Servico) Then
    Exit Sub
    End If
    End If


    Porém não me agradava por ele deletar o registro e eu mesmo não gostava, acho mais simples se simplesmente não aparecer.

    Muito obriado Avelino!!!

    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    Registrado : 04/04/2010

    [Resolvido]Restringir valores já lançados em combobox dentro de subFormulário folha de dados. Empty Re: [Resolvido]Restringir valores já lançados em combobox dentro de subFormulário folha de dados.

    Mensagem  Avelino Sampaio 6/6/2013, 13:22

    Obrigado pelo feedback.

    Apenas um perfumaria:

    strServicoNormal = "SELECT CODSERVICO, CODRECURSO, VU, TIPOEQUIPE, DescModulo, DescBloco, DescServico, TIPOSERVICO, Uf, VUComDesconto "
    strServicoNormal = strServicoNormal & "FROM TabQuantitativo GROUP BY CODSERVICO, CODRECURSO, VU, TIPOEQUIPE, DESCMODULO, DESCBLOCO, DESCSERVICO, TIPOSERVICO, UF, VuComDesconto "

    If Me.CurrentRecord = 1 Then
    strServicoNormal = strServicoNormal & "HAVING CODRECURSO=" & Me!Recurso & " AND DESCMODULO <>'" & "Pavimentação" & "'"
    Else
    strServicoNormal = strServicoNormal & "HAVING CODSERVICO Not In (" & RestringeCombo() & ") AND CODRECURSO=" & Me!Recurso & " AND DESCMODULO<>'" & "Pavimentação" & "'"
    End If


    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.

    Conteúdo patrocinado


    [Resolvido]Restringir valores já lançados em combobox dentro de subFormulário folha de dados. Empty Re: [Resolvido]Restringir valores já lançados em combobox dentro de subFormulário folha de dados.

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 18:00