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

    Laços de repetição e registros selecionados numa listbox - aplicar critério

    avatar
    jbez75
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1
    Registrado : 03/05/2023

    Laços de repetição e registros selecionados numa listbox - aplicar critério Empty Laços de repetição e registros selecionados numa listbox - aplicar critério

    Mensagem  jbez75 3/5/2023, 19:23

    Grandes Professores e demais membros aqui do Máximo Access, boa tarde!

    Tenho o seguinte problema e gostaria de ver se alguém tem a solução:

    Tenho um formulário denominado "Frm_NF" e nele contém uma listbox (chamada "CXLIST_NF_E_REG")  com cerca de 15 colunas. A coluna 12 dessa listbox contém variadas unidades de medida, tais como "L", "L20", "un", "m3", etc.

    Essa listbox possui cerca de 5000 registros (são carregados de uma dada tabela) cujos respectivos campos "Unid" (coluna 12) possuem as mais diversas unidades (L, L20, un, etc).

    Em tal formulário tenho um botão de comando (btnFrmFcv]) cujo objetivo é carregar um outro Formulário (denominado "Frm_FCVTodosEFD"). Este formulário possibilitará aplicar o FCV (fator de correção de volume) aos registros selecionados naquele primeiro formulário.

    Todavia, quero implementar alguns critérios que se não atendidos impedirá o carregamento do segundo formulário. Um dos critérios é que apenas os registros selecionados cujos campos "Unid" sejam iguais a "L" ou "L20". Ou seja, se ao menos um dos registros selecionados contiverem valores diferentes o sistema não carregará o formulário "Frm_FCVTodosEFD".

    Já tentei diversas alternativas e nenhuma funcionou. Acredito que os laços de repetição (Do While ou Do Until) resolveriam, porém não estou sabendo estruturar a instrução. ALGUÉM PODERIA ME AJUDAR NESSE SENTIDO, ou seja, implementar um critério (na instrução disposta adiante) por meio de laço de repetição que impeça o carregamento do formulário "Frm_FCVTodosEFD" caso ao menos um dos registros selecionado na lisbox "CXLIST_NF_E_REG" contenha no campo "Unid" (coluna 12) unidade diferente de "L" ou "L20"?

    Abaixo segue a instrução que está funcionando perfeitamente (sem considerar a questão do critério do campo unidade do registro selecionado).

    Private Sub btnFrmFcv_Click()
    On Error GoTo ErrosPrevistoss

     Dim i As Variant
     
      If IsNull(Me.combox_oper) Then
           MsgBox "É obrigatório selecionar o 'Tipo de Operação' para que os dados sejam carregados!", vbExclamation, "ATENÇÃO:"
           Me.combox_oper.SetFocus
           Me.combox_oper.Dropdown
           Exit Sub
           End If
     
     If Me.CXLIST_NF_E_REG.ItemsSelected.Count = 0 Then
       MsgBox "Não há nenhum registro selecionado na caixa de listagem!", vbExclamation, "ATENÇÃO:"
       Exit Sub
       End If


    If MsgBox("Será carregado o Módulo de Aplicação do Fator de Conversão de Volumes (FCV)! Confirma carregamento?", vbYesNo + vbInformation, "AVISO:") = vbYes Then

               
      DoCmd.OpenForm "Frm_FCVTodosEFD"
               

    For Each i In Form_Frm_Alterar_Reg_E.CXLIST_NF_E_REG.ItemsSelected

        If Me.CXLIST_NF_E_REG.Selected(i) = True Then
       
          Form_Frm_FCVTodosEFD.ListboxEFDSel.AddItem Me.CXLIST_NF_E_REG.Column(0, i) & ";" & Left(Me.CXLIST_NF_E_REG.Column(11, i), 4) & ";" & Format(Me.CXLIST_NF_E_REG.Column(1, i), "yyyy") & ";" & Me.CXLIST_NF_E_REG.Column(2, i) & ";" & Me.CXLIST_NF_E_REG.Column(3, i) & ";" & Me.CXLIST_NF_E_REG.Column(4, i) & ";" & Me.CXLIST_NF_E_REG.Column(5, i) & ";" & Me.CXLIST_NF_E_REG.Column(6, i) & ";" & Me.CXLIST_NF_E_REG.Column(7, i) & ";" & Me.CXLIST_NF_E_REG.Column(8, i) & ";" & Me.CXLIST_NF_E_REG.Column(11, i) & ";" & Me.CXLIST_NF_E_REG.Column(12, i) & ";" & Me.CXLIST_NF_E_REG.Column(13, i) & ";" & Me.CXLIST_NF_E_REG.Column(14, i) & ";" & Me.CXLIST_NF_E_REG.Column(15, i) & ";" & Me.CXLIST_NF_E_REG.Column(17, i)
         
         
          End If

    Next i

     Form_Frm_FCVTodosEFD.TxtAnoEFDSel = Format(DLookup("[DtEM]", "[EFD-Tbl54_X_Tbl75]", "[idRegistro] = " & TxtIdAlterar), "yyyy")
      Form_Frm_FCVTodosEFD.TxtGrupoProd = Left(DLookup("[Grupo]", "[EFD-Tbl54_X_Tbl75]", "[idRegistro] = " & TxtIdAlterar), 4)

        Else
     
     MsgBox ("Operação Cancelada!"), vbInformation, "AVISO:"
       
       End If

    ErrosPrevistoss:
    If Err.Number = 3075 Then
    MsgBox "O usuário selecionou linha que não contém registro!", vbExclamation, "Atenção:"
    Exit Sub
    End If

    End sub


    A instrução acima carrega o formulário Frm_FCVTodosEFD independente da informação na coluna "Unid" dos registros selecionados na listbox mencionada .
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    Laços de repetição e registros selecionados numa listbox - aplicar critério Empty Re: Laços de repetição e registros selecionados numa listbox - aplicar critério

    Mensagem  Alexandre Fim 3/5/2023, 19:42

    Olá Jorge,

    Seja bem-vindo ao fórum, e aqui com certeza voce vai encontrar a solução.
    Para ficar mais fácil e rápido, por gentileza envie uma cópia do seu bd, somente objetos(tabelas/consultas/forms/modulos e etc) envolvidos no problema, para análise e solução.

    OBS: na minha assinatura possui um link explicando como postar anexos no fórum.

    Att,

    Alexandre Fim



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

    Laços de repetição e registros selecionados numa listbox - aplicar critério Setinf11
    Sistemas e Tecnologia Ltda

      Data/hora atual: 28/4/2024, 05:12