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


    [Resolvido]ListBox Seleção Múltipla como Critério de Campo em Consulta

    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 24/02/2012

    [Resolvido]ListBox Seleção Múltipla como Critério de Campo em Consulta Empty [Resolvido]ListBox Seleção Múltipla como Critério de Campo em Consulta

    Mensagem  rgondim 2/7/2012, 18:50

    Tenho um formulário que possui uma ListBox de seleção múltipla. No mesmo formulário, há um subform baseado em uma consulta com um campo (CodEmpregador) que deveria filtrar seus resultados a partir da ListBox.

    Ao tornar a ListBox seleção múltipla ela passa a retorna null como valor. Então, criei um campo caixa de texto para receber os valores selecionados.

    Quando abro o formulário, ocorre erro: "Esta expressão foi digitada de forma incorreta ou é complexa demais para ser avaliada. Por exemplo, uma expressão numérica pode conter um número excessivo de elementos complicados. Tente simplificar a expressão atribuindo partes da expressão a variáveis. (Erro 3071)"

    A expressão que uso para inserir os valores da ListBox ma caixa de texto é essa:
    Sub BoundData()
    Dim frm As Form, ctl As Control
    Dim varItm As Variant

    Set frm = Forms!frmTrab_AlteraSal
    Set ctl = frm!lstEmpregador
    Me.CodEmpregador = Null

    For Each varItm In ctl.ItemsSelected
    If IsNull(Me.CodEmpregador) Or Me.CodEmpregador.Value = "" Then
    Me.CodEmpregador = ctl.ItemData(varItm)
    Else
    Me.CodEmpregador = Me.CodEmpregador & " Ou " & ctl.ItemData(varItm)
    End If
    Next varItm
    End Sub


    Última edição por rgondim em 4/7/2012, 09:53, editado 1 vez(es)
    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 24/02/2012

    [Resolvido]ListBox Seleção Múltipla como Critério de Campo em Consulta Empty Re: [Resolvido]ListBox Seleção Múltipla como Critério de Campo em Consulta

    Mensagem  rgondim 2/7/2012, 19:50

    Solucionei utilizando esta função:

    Dim ctl As Control, frm As Form, lngContador As Long
    Dim strSQL As String, strWhere As String
    Set frm = Forms!frmTrab_AlteraSal
    Set ctl = frm!lstEmpregador

    strWhere = ""
    For lngContador = 0 To ctl.ListCount - 1
    If ctl.Selected(lngContador) Then
    strWhere = strWhere & "," & ctl.Column(0, lngContador)
    End If
    Next
    strWhere = Mid(strWhere, 2)

    If ctl.ItemsSelected.Count = 0 Then
    Me.frmTrab_AlteraSalSub.Visible = False
    ElseIf ctl.ItemsSelected.Count > 0 Then
    strSQL = "SELECT * FROM qryTrab_AlteraSal WHERE CodEmpregador In (" & strWhere & ")"
    Forms!frmTrab_AlteraSal!frmTrab_AlteraSalSub.Form.RecordSource = strSQL
    Me.frmTrab_AlteraSalSub.Visible = True
    End If

    *frmTrab_AlteraSal = formulário pai
    *frmTrab_AlteraSalSub = subformulário
    *lstEmpregador = Listbox

      Data/hora atual: 26/4/2024, 11:28