MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

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]Desmarcar caixa de seleção em formulário contínuo

    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 15/07/2014

    [Resolvido]Desmarcar caixa de seleção em formulário contínuo Empty [Resolvido]Desmarcar caixa de seleção em formulário contínuo

    Mensagem  mduarteteixeira em 14/6/2019, 12:56

    Prezados (as),

    Possuo um formulário (Credenciamento - OS) com dois botões. Um 'Selecionar Penalidade' e outro 'Emitir Penalidade'. No evento do 'Emitir Penalidade' ele abre um relatório constando as cláusulas que ativei em caixa de seleção previamente através do evento 'Selecionar Penalidade'.

    O que busco é: ao emitir a penalidade, o evento apre o form que contém as cláusulas para selecionar e desmarca todas as que foram marcadas. Estou tentando fazer isso da seguinte forma:

    (Estou trabalhando o laço apenas após o Else por hora)

    Só que, somente está desmarcando o primeiro registro. Como faço para o laço percorrer todos os registros do form? Já grato pela atenção de todos!

    Private Sub Emitir_Penalidade_Click()
    'abre relatório para emitir penalidade para esta OS
    Dim F As String


    F = Me.OS

    DoCmd.RunCommand (acCmdSaveRecord)
    DoCmd.OpenReport "Clausula Oitava Report", acViewReport, , "[OS]= '" & F & "'"
       If MsgBox("Emitir Penalidade?", vbYesNo + vbInformation, "Atenção") = vbYes Then
           DoCmd.PrintOut , , , , 1, 1
           DoCmd.Close acReport, "Clausula Oitava Report"
           'Call MsgBox("Limpar as penalidades selecionadas.")
           DoCmd.OpenForm "Clausula Oitava", acNormal
           [Forms]![Clausula Oitava]!Selecionar.SetFocus
           
           Else
               DoCmd.Close acReport, "Clausula Oitava Report"
               'Call MsgBox("Limpar as penalidades selecionadas.")
               DoCmd.OpenForm "Clausula Oitava", acNormal
               Dim X As Integer
               X = [Forms]![Clausula Oitava]!Código
               For X = 1 To 31 Step 1
                   If [Forms]![Clausula Oitava]!Selecionar = True Then
                       
                       [Forms]![Clausula Oitava]!Selecionar = False
                   End If
               Next X

               

       End If


    End Sub
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4213
    Registrado : 06/11/2009

    [Resolvido]Desmarcar caixa de seleção em formulário contínuo Empty Re: [Resolvido]Desmarcar caixa de seleção em formulário contínuo

    Mensagem  Assis em 14/6/2019, 13:21

    Teste

     If [Forms]![Clausula Oitava]!Selecionar = 0 Then
                     
      [Forms]![Clausula Oitava]!Selecionar = -1


    .................................................................................
    *** Só sei que nada sei ***
    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 15/07/2014

    [Resolvido]Desmarcar caixa de seleção em formulário contínuo Empty Re: [Resolvido]Desmarcar caixa de seleção em formulário contínuo

    Mensagem  mduarteteixeira em 14/6/2019, 13:38

    Olá Assis,


    Não deu certo. O evento não percorre os registros.



    Será que devo mudar o tipo de laço? O retirar esse If do laço?
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4213
    Registrado : 06/11/2009

    [Resolvido]Desmarcar caixa de seleção em formulário contínuo Empty Re: [Resolvido]Desmarcar caixa de seleção em formulário contínuo

    Mensagem  Assis em 14/6/2019, 13:40

    Quer postar essa parte ?


    .................................................................................
    *** Só sei que nada sei ***
    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 15/07/2014

    [Resolvido]Desmarcar caixa de seleção em formulário contínuo Empty Re: [Resolvido]Desmarcar caixa de seleção em formulário contínuo

    Mensagem  mduarteteixeira em 14/6/2019, 14:48

    Beleza,


    Limpei muitos dados para poder comprimir.

    Vai dar uns bugs pra abrir.

    Os eventos de botão estarão na aba Credenciamento - OS


    Obrigado
    Anexos
    [Resolvido]Desmarcar caixa de seleção em formulário contínuo AttachmentClaúsulas - MaximoAccess.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.6 Mb) Baixado 10 vez(es)
    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 15/07/2014

    [Resolvido]Desmarcar caixa de seleção em formulário contínuo Empty Re: [Resolvido]Desmarcar caixa de seleção em formulário contínuo

    Mensagem  mduarteteixeira em 14/6/2019, 19:32

    Assis,


    Buscando mais a fundo em outros tópicos, consegui encontrar algo que solucionou a questão.

    Ao clicar no botão, abre o formulário e desmarca as caixas selecionadas. Não é visualmente bacana, mas cumpre.

    Vou marcar como resolvido e agradeço novamente sua atenção.

    Eis o código: a cada incremento em X, ele executa o If e segue para o próximo registro.

    Private Sub Emitir_Penalidade_Click()
    'abre relatório para emitir penalidade para esta OS
    Dim F As String
    Dim X As Integer

    F = Me.OS

    DoCmd.RunCommand (acCmdSaveRecord)
    DoCmd.OpenReport "Clausula Oitava Report", acViewReport, , "[OS]= '" & F & "'"
    If MsgBox("Emitir Penalidade?", vbYesNo + vbInformation, "Atenção") = vbYes Then
    DoCmd.PrintOut , , , , 1, 1
    DoCmd.Close acReport, "Clausula Oitava Report"
    DoCmd.OpenForm "Clausula Oitava", acNormal
    For X = 1 To 31 Step 1

    If [Forms]![Clausula Oitava]!Selecionar = True Then

    [Forms]![Clausula Oitava]!Selecionar = False
    End If
    DoCmd.GoToRecord , , acNext

    Next X


    DoCmd.Close acForm, "Clausula Oitava"

    Else
    DoCmd.Close acReport, "Clausula Oitava Report"
    DoCmd.OpenForm "Clausula Oitava", acNormal

    For X = 1 To 31 Step 1

    If [Forms]![Clausula Oitava]!Selecionar = True Then

    [Forms]![Clausula Oitava]!Selecionar = False
    End If
    DoCmd.GoToRecord , , acNext

    Next X


    DoCmd.Close acForm, "Clausula Oitava"


    End If

      Data/hora atual: 11/8/2020, 01:38