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]Duplicidade de Itens no mesmo pedido (não permitir)

    Compartilhe

    Antonio Aurélio
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 29/01/2014

    [Resolvido]Duplicidade de Itens no mesmo pedido (não permitir)

    Mensagem  Antonio Aurélio em Ter 17 Out 2017, 19:45

    Senhores, boa tarde.

    Após muita pesquisa e não ter encontrado o que preciso, recorro a ajuda de vocês.
    Preciso que ao inserir item no meu pedido (subform detalhes do pedido), caso ele já tenha sido cadastrado NO MESMO PEDIDO, seja exibido a mensagem "Item Cadastrado", p. exemplo.
    Em um novo pedido, o item pode ser inserido.
    Espero ter conseguido explicar minha necessidade.
    Muito obrigado.
    Antonio Aurélio
    avatar
    thiagomcosta
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 237
    Registrado : 23/01/2017

    Re: [Resolvido]Duplicidade de Itens no mesmo pedido (não permitir)

    Mensagem  thiagomcosta em Ter 17 Out 2017, 19:53

    Trabalha com formulários acoplados ou não?

    Antonio Aurélio
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 29/01/2014

    Duplicidade de Itens no mesmo pedido (não permitir)

    Mensagem  Antonio Aurélio em Ter 17 Out 2017, 20:09


    Obrigado pelo interesse em me ajudar.

    Trabalho com os formularios Clientes, Pedidos e Subform Pedidos por Clientes (de maneira bem similar ao bd exemplo do access).

    Abraços,
    avatar
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 712
    Registrado : 01/03/2014

    Re: [Resolvido]Duplicidade de Itens no mesmo pedido (não permitir)

    Mensagem  Celso Roberto em Ter 17 Out 2017, 23:01

    Olá...
    Adapte a sua necessidade, Coloque no evento antes de atualizar no campo que voce seleciona o produto

    Código:
     On Error Resume Next
        Dim frm As Recordset

        Set frm = Me.RecordsetClone
        With frm
        .FindFirst "tblNomeDaSuaTabela.CodigoDoProduto =" & Me.NomeDoCampoDoSubFormulário& ""
            If Not .NoMatch Then
              MsgBox "Já existe um lançamento Com este Produto" & Chr(10) & "" & "Altere o Lançto !! ", vbExclamation + vbDefaultButton2, "ATENÇÂO"
              Cancel = True
              Me.NomeDoCampoDoFSubFormulário.Undo
             
            End If
        End With
        Set frm = Nothing


    Espero que ajude


    Abraços


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....

    Antonio Aurélio
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 29/01/2014

    Duplicidade de Itens no mesmo pedido (não permitir)

    Mensagem  Antonio Aurélio em Qua 18 Out 2017, 11:43

    Bom dia.

    Agradeço a atenção de vocês.
    O código funciona, porém, como já tenho outros pedidos abertos, se abro outro pedido e tento inserir um produto já existente em outro pedido recebo a mensagem de lançamento existente para o produto.

    O que preciso é que no mesmo pedido não seja possível vender o mesmo produto (basta alterar a quantidade), mas, num pedido novo os produtos possam ser inseridos normalmente para vendas posteriores.

    Agradeço e continuo contando com o apoio de voces.

    Muito obrigado.
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    Re: [Resolvido]Duplicidade de Itens no mesmo pedido (não permitir)

    Mensagem  Assis em Qua 18 Out 2017, 12:20

    Bom dia

    É um formulário com um subformulário ligado ?

    No código que o Celso lhe passou o mesmo vai a tabela procurar se o produto que já esta registado, até aqui tudo bem, mas esse produto pode ser registado em vários documentos, portanto tem que ter mais uma condição.

    Tente aplicar este código, e tiver duvida poste

    Private Sub Ref_BeforeUpdate(Cancel As Integer)
    If Not IsNull(DLookup("[Ref]", "TbldetalheOrcamento", "[Ref] = '" & Me.Ref & "' And idligacao = " & Forms!frmOrcamento!idOrcamento & "")) Then
    MsgBox "Ref Já Registada neste Orçamento", vbInformation, "Aviso"
    Me.Undo
    End If
    End Sub



    .................................................................................
    *** Só sei que nada sei ***

    Antonio Aurélio
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 29/01/2014

    Duplicidade de Itens no mesmo pedido (não permitir)

    Mensagem  Antonio Aurélio em Qua 18 Out 2017, 12:49

    Bom dia.

    Obrigado pela ajuda.

    O meu formulário PEDIDOS tem um subformulário DETALHES DA VENDA.

    Adaptei o código e continuo recebendo a mensagem que o o item já existe no pedido.

    If Not IsNull(DLookup("[CódigoDoProduto]", "Detalhes_da_Venda", "[CódigoDoProduto] = '" & Me.CódigoDoProduto & "' And CódigoDoProduto = " & Forms![ Detalhes_da_Venda]!CódigoDoProduto & "")) Then
    MsgBox "Produto Já Registrado neste Pedido", vbInformation, "Aviso"
    Me.Undo
    End If

    O que percebo é que ele não está verificando os produtos inseridos no pedido atual (ou está pesquisando da tabela de Produtos ou da tabela Detalhes da Venda, retornando a mensagem de "Item já registrado" ignorando o número do Pedido atual).

    Continuo contando com a ajuda de vocês.
    Volto às minhas pesquisas, também.
    Obrigado.

    Antonio Aurélio

    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    Re: [Resolvido]Duplicidade de Itens no mesmo pedido (não permitir)

    Mensagem  Assis em Qua 18 Out 2017, 13:04

    Antonio Aurélio

    Copie e cole para testar

    If Not IsNull(DLookup("[CódigoDoProduto]", "Detalhes_da_Venda", "[CódigoDoProduto] = " & Me.CódigoDoProduto & " And CódigoDoProduto = " & Forms![ Detalhes_da_Venda]!CódigoDoProduto & "")) Then
    MsgBox "Produto Já Registrado neste Pedido", vbInformation, "Aviso"
    Me.Undo
    End If


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    Re: [Resolvido]Duplicidade de Itens no mesmo pedido (não permitir)

    Mensagem  Assis em Qua 18 Out 2017, 13:12

    E vai ter erro aqui

    And CódigoDoProduto = " & Forms![ Detalhes_da_Venda]!CódigoDoProduto & ""))


    Aqui são os campos ID de ligação do formulário com o subformulário.

    Veja bem a Mensagem nº 6

    If Not IsNull(DLookup("[Ref]", "TbldetalheOrcamento", "[Ref] = '" & Me.Ref & "' And idligacao = " & Forms!frmOrcamento!idOrcamento & "")) Then


    .................................................................................
    *** Só sei que nada sei ***

    Antonio Aurélio
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 29/01/2014

    Duplicidade de Itens no mesmo pedido (não permitir)

    Mensagem  Antonio Aurélio em Qua 18 Out 2017, 13:22

    Continuo recebendo a mensagem.

    O item A 100.345.353 está no Pedido nº 000.001 (encerrado e sem possibilidades de alteração);

    Estou abrindo o Pedido nº 000.002 e tento inserir o mesmo item para venda; aí recebo a mensagem de item registrado.

    Vou continuar tentando.

    Tentei fazer referência ao Pedidos, mas, não consegui obter sucesso.

    Abraços e obrigado novamente.
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    Re: [Resolvido]Duplicidade de Itens no mesmo pedido (não permitir)

    Mensagem  Assis em Qua 18 Out 2017, 13:43

    António Aurélio

    Poste ai só:

    Tabela de vendas e a tabela de Detalhes_da_Venda, e o respetivo formulário aonde está a registar.

    Aguardo


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3698
    Registrado : 20/04/2011

    Re: [Resolvido]Duplicidade de Itens no mesmo pedido (não permitir)

    Mensagem  Silvio em Qua 18 Out 2017, 13:53

    Bom dia, se me permitem um simples pitaco...

    Algo parecido com isso, detalhe uso em um subformulário, em uma combobox, que passa o valor dela para uma caixa oculta( CodProdutoOculta).

    Private Sub cbocodprod_BeforeUpdate(Cancel As Integer)
    'aqui eu faço a verificação de duplicidade de artigos dentro do pedido.
    Dim frm As Recordset
       Set frm = Me.RecordsetClone
       With frm
       .FindFirst "CodProdutoOculta='" & Me.CboCodProd & "' And CodSubPed=" & Me.CodSubped & ""
           If Not .NoMatch Then
             If MsgBox("Deseja repetir esse artigo ?", vbYesNo + vbInformation + vbDefaultButton2, "Confirmação") = vbYes Then
           Else
              Cancel = True
              Me.CboCodProd.Undo
              End If
           End If
       End With
       Set frm = Nothing
    End Sub



    Detalhes...

    CodProdutoOculta= recebe o valor da combobox CboCodProd.
    CodSubPed= Chave primária do subformulário.

    Tem que alterar duas linhas apenas para cancelar a introdução de artigos repetidos.


    Bons estudos.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]

    Antonio Aurélio
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 29/01/2014

    Duplicidade de Itens no mesmo pedido (não permitir)

    Mensagem  Antonio Aurélio em Qua 18 Out 2017, 14:33

    Senhores,

    Estou tendo progresso.
    Fiz algumas adaptações conforme o Código que Sr. Sílvio postou.

    Dentro do subformulário detalhes da venda (modo folha de dados), recebo a mensagem que o produto existe no pedido e se desejo ou não re-incluí-lo.
    Ótimo.

    Quando abro o Formulário de Pedidos e tento incluir o mesmo item, não recebo a mensagem e o ítem é incluído.

    Onde estou pecando?

    Código alterado.
    'aqui eu faço a verificação de duplicidade de artigos dentro do pedido.
    Dim frm As Recordset
    Set frm = Me.RecordsetClone
    With frm
    .FindFirst "CodProdutoOculta=" & Me.CódigoDoProduto & " And CódigoDoPedido=" & Me.CódigoDoPedido & ""
    If Not .NoMatch Then
    If MsgBox("Deseja repetir esse artigo ?", vbYesNo + vbInformation + vbDefaultButton2, "Confirmação") = vbYes Then
    Else
    Cancel = True
    Me.CódigoDoProduto.Undo
    End If
    End If
    End With
    Set frm = Nothing

    Obrigado.
    avatar
    marceloarboit
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 84
    Registrado : 09/07/2015

    Re: [Resolvido]Duplicidade de Itens no mesmo pedido (não permitir)

    Mensagem  marceloarboit em Qua 18 Out 2017, 14:36

    Porque você não posta a parte do BD que você precisa corrigir? Fica muito mais fácil pra quem for te ajudar.

    Antonio Aurélio
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 29/01/2014

    Duplicidade de Itens no mesmo pedido (não permitir)

    Mensagem  Antonio Aurélio em Qua 18 Out 2017, 14:45

    Ola Marcelo, bom dia.

    Agradeço seu retorno.

    Não postei parte do BD por não ter visto necessidades neste caso.

    Julguei até que minha dúvida poderia ser simples, mas, percebí que não é, principalmente para quem não tem tanta experiência como eu.

    Muito obrigado.

    Antonio Aurélio.
    avatar
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 712
    Registrado : 01/03/2014

    Re: [Resolvido]Duplicidade de Itens no mesmo pedido (não permitir)

    Mensagem  Celso Roberto em Qua 18 Out 2017, 15:00

    Olá Bom dia a todos

    Testado e funcionando, verifica ai.

    Antonio, é importante a base de dados porque não sabemos como ela esta projetada.

    Mas testa ai, nã esque de corrigir os nomes dos campos para os seus

    Código:
    Dim frm As Recordset

        Set frm = Me.RecordsetClone
        With frm
        .FindFirst "CodProduto=" & Me.CboCodProduto & ""
            If Not .NoMatch Then
              MsgBox "Já existe um lançamento Com este Produto" & Chr(10) & "" & " Por favor,altere o Lançto !! ", vbExclamation + vbDefaultButton2, "ATENÇÂO"
              Cancel = True
              Me.CboCodProduto.Undo
              'Me.Bookmark = .Bookmark
            End If
           
        End With
        Set frm = Nothing

    Este tambem funciona

    Código:
    Dim frm As Recordset

        Set frm = Me.RecordsetClone
        With frm
        .FindFirst "CodProduto=" & Me.CboCodProduto & " And NumPedido=" & Me.txtNumPedido & ""
            If Not .NoMatch Then
              MsgBox "Já existe um lançamento Com este Produto" & Chr(10) & "" & " Por favor,altere o Lançto !! ", vbExclamation + vbDefaultButton2, "ATENÇÂO"
              Cancel = True
              Me.CboCodProduto.Undo
              'Me.Bookmark = .Bookmark
            End If
           
        End With
        Set frm = Nothing

    Aguardamos


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....

    Antonio Aurélio
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 29/01/2014

    Duplicidade de Itens no mesmo pedido (não permitir)

    Mensagem  Antonio Aurélio em Qua 18 Out 2017, 16:47

    Senhores, boa tarde.

    Muito obrigado pela valiosa colaboração.
    Os Códigos enviados pelo Sr Celso Roberto, após as adaptações necessárias, funcionaram.
    Obrigado a todos.

    Tópico resolvido.
    Muito obrigado.

    Antonio Aurélio
    avatar
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 712
    Registrado : 01/03/2014

    Re: [Resolvido]Duplicidade de Itens no mesmo pedido (não permitir)

    Mensagem  Celso Roberto em Qua 18 Out 2017, 17:17

    Olá...

    Ficamos felizes por ter conseguido resolver

    O Fórum agradece o seu retorno

    Abraços


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....

      Data/hora atual: Seg 11 Dez 2017, 23:01