MaximoAccess

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

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Caixa de Verificação (Sim/Não)

    Compartilhe
    avatar
    Simão Correia
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7
    Registrado : 03/11/2017

    [Resolvido]Caixa de Verificação (Sim/Não)

    Mensagem  Simão Correia em Dom 12 Nov 2017, 19:26

    Olá a todos,

    Solicito o vosso auxilio, pois já pesquisei aqui no fórum e em outras fontes mas não obtive nenhum exemplo adaptável à minha realidade.
    Contudo, eu gostaria de saber se é possível não premitir voltar a premir a caixa de verificação (Sim/Não) depois de premida, esta ação atualiza a saída do stock, nomeadamento no Frm_Venda_Itens. Eu utilizo este código para executar essa ação:

    Private Sub Atualizar_Stock_AfterUpdate()

       If Atualizar_Stock = True Then
       If MsgBox("Confirma a quantidade de saída deste produto em Stock?", vbYesNo, "Aviso") = vbYes Then
       
       If IsNull(Me.Quantidade) Or Me.Quantidade = 0 Then
           
    MsgBox "Informe a quantidade de saída no Stock!", vbCritical, "Atenção!"
       Atualizar_Stock = False
       Me.Quantidade.SetFocus
       Exit Sub
       End If
         
    Dim cnn As New ADODB.Connection
    Dim rs1 As ADODB.Recordset
    Set cnn = CurrentProject.Connection
    'Abre a conexão com o registo
    Set rs1 = New ADODB.Recordset
    rs1.CursorType = adOpenKeyset
    rs1.LockType = adLockOptimistic
    'Abre a Tabela_Produtos
    rs1.Open "TB_Registo_Produtos", cnn, , , adCmdTable
    'Compara o código do produto entre as tabelas Produtos e a tabela para entradas de produtos.
    rs1.Find "IDProduto=" & Me.IDProduto, 0, adSearchForward, 1
    If Not rs1.EOF Then
    rs1("Stock") = rs1("Stock") - Me.Quantidade
     If rs1("Stock") < 0 Then
    MsgBox "Quantidade não disponível. O Stock atual é de " & rs1("Stock") + Me.Quantidade & " produtos", vbExclamation, "Atenção!"

    Exit Sub
    Else
    If rs1("Stock") < rs1("Stock_mínimo") Then
    MsgBox "Stock atual deste produto é inferior ao stock mínimo, proceda à reposição do mesmo. Stock mínimo: " & rs1("Stock_mínimo"), vbExclamation, "Atenção" '-rs1 ("Stock") & " produtos(s)", vbExclamation, "Atenção!"
    rs1.Update
    MsgBox "Stock atual: " & rs1("Stock") & " produtos", vbExclamation, "Atenção!"
    Exit Sub
    Else
    rs1.Update
    MsgBox "Stock atual: " & rs1("Stock") & " produtos", vbExclamation, "Atenção!"
    End If
    End If

    rs1.Close
    cnn.Close
    Set cnn = Nothing
    Set rs1 = Nothing
    Else

    End If
    End If
    End If
     
    End Sub

    Uma vez premida a caixa de verificação continua ativa, portanto é possivel realizar a rotina supracitada várias vezes. Ainda relacionado com esta situação o botão de eliminar a linha não retorna a quantidade do produto selecionada na linha em stock.

    Desde já agradeço
    Melhores cumprimentos,
    Simão Correia
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4534
    Registrado : 15/03/2013

    Re: [Resolvido]Caixa de Verificação (Sim/Não)

    Mensagem  ahteixeira em Dom 12 Nov 2017, 20:43

    Olá Simao,
    Você altera o estado (valor) dessa caixa de verificação após executar o código.
    Ou tem outro campo para verificar se já foi executado ou não?

    Basta ter um IF no início do código que postou a verificar.
    Caso já tenha executado, faz um Exit Sub e pode também colocar uma caixa de mensagem avisar o utilizador.

    Fica a sugestão.

    Abraço
    avatar
    Simão Correia
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7
    Registrado : 03/11/2017

    Re: [Resolvido]Caixa de Verificação (Sim/Não)

    Mensagem  Simão Correia em Dom 12 Nov 2017, 20:47

    O valor predefenido da caixa de verificação é não, ou seja se premir fica sim desta forma eu sei que está executado.
    Mas eu pertendo que não depois de executada não fique novamente ativa!

    Abraço.
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4534
    Registrado : 15/03/2013

    Re: [Resolvido]Caixa de Verificação (Sim/Não)

    Mensagem  ahteixeira em Seg 13 Nov 2017, 08:54

    Olá Simão,

    Para o efeito use o Enable, exemplo:

    MinhaCaixa.enable = false

    Se for num formulario de navegação de vários registos, coloque no evento Form Current
    Neste caso terá que usar o IF para verificar se é sim ou não.

    Abraço


    avatar
    Simão Correia
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7
    Registrado : 03/11/2017

    Re: [Resolvido]Caixa de Verificação (Sim/Não)

    Mensagem  Simão Correia em Sab 18 Nov 2017, 19:58

    Boa noite Álvaro,

    Sim é num subformulário. Como posso fazer isso?

    Obrigado pela resposta.

    Abraço
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4534
    Registrado : 15/03/2013

    Re: [Resolvido]Caixa de Verificação (Sim/Não)

    Mensagem  ahteixeira Ontem à(s) 12:35

    Olá Simão Correia,

    Seria mais fácil se colocar a base de dados com os objectos envolvidos.

    Fiz pequeno exemplo, presumindo que será em sub-formulario corrido.
    Veja o código utilizado:
    Código:
    Option Compare Database

    Private Sub booAtualizado_AfterUpdate()
        Me.booAtualizado.Enabled = False
    End Sub

    Private Sub Form_Current()
        If Me.booAtualizado = True Then
            Me.booAtualizado.Enabled = False
        Else
            Me.booAtualizado.Enabled = True
        End If
    End Sub

    Exemplo:
    cld.pt/dl/download/25fdba4e-56c1-47cf-8567-f50cc3aea82f/SimNao_Stock.zip
    Copiar link e colar no Browser

    Abraço


    Última edição por ahteixeira em Seg 20 Nov 2017, 15:51, editado 1 vez(es)
    avatar
    Simão Correia
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7
    Registrado : 03/11/2017

    Re: [Resolvido]Caixa de Verificação (Sim/Não)

    Mensagem  Simão Correia Ontem à(s) 14:57

    Perfeito, muito obrigado!
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4534
    Registrado : 15/03/2013

    Re: [Resolvido]Caixa de Verificação (Sim/Não)

    Mensagem  ahteixeira Ontem à(s) 15:52

    Olá Simão Correia, obrigado pelo retorno.
    Fico feliz por ser o que pretende e ter ajudado.

    Abraço

      Data/hora atual: Ter 21 Nov 2017, 17:34