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]Verificar e avisar sobre duplicidade

    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 23/05/2011

    [Resolvido]Verificar e avisar sobre duplicidade Empty [Resolvido]Verificar e avisar sobre duplicidade

    Mensagem  Ney Santos em 28/3/2020, 15:34

    Bom dia!
    Baixei o exemplo contido nesse tópico e alterei o codigo contido num determinado botão para minhas nescecidades, ocorre um codigo bem parecido eu ja havia visto num dos videos de um programador por nome  Gilberlandio.
    E da mesma maneira que no código do Gilberlandio , esse código tamberm apresenta para mim o seguinte erro:
    Dim Busca As String
    Dim stLinkCriteria As String
    Dim rsc As DAO.Recordset <===="Voce inseriu uma expressão que contem uam referencia inválida a propiedade recordsetclone
    Set rsc = Me.RecordsetClone
    Busca = Me.TXIDItem.Value
    stLinkCriteria = "IDPROD= '" & Busca & "'"
    If DCount("IDPROD", "SUBVENDAS", stLinkCriteria) > 0 Then
    Me.Undo

    MsgBox "Atenção, registro " _
    & Busca & " ja existe." _
    & vbCr & vbCr & "Vai ser mostrado o Registo.", vbInformation _
    , "Duplicado"
    rsc.FindFirst stLinkCriteria
    Me.Bookmark = rsc.Bookmark
    End If
    Set rsc = Nothing
    minha intenção é a seguinte:
    Durante o lançamento de produtos numa venda (tipo caixa de supermecado) a msg fosse disparada avisando que determinado item ja consta no pedido e entao o usuario descide se continua ou não, caso ele continue( ainda vou terminar de escrever o codigo ) o produto será lançado caso contario cancela o novo lançamento:
    Exemplo no caso e para um açougue .. O caixa passa um frango assado mas sem querer o leitor registra 2x.
    Caso seja um engano o lançamento e cancelado e ele vai para o proximo item,mas  se realmente forem  2 itens  o codigo de lançamento prossegue normalmentee duplica o lançamento.
    Ps. O código graavr ja está pronto e funcioan perfeitamente.
    Espero ter explicado bem.
    Peço a juda dos amigos, pois não entendo porque  o acces não reconhece o DAO.Recordset
    Agradeço qualquer ajuda.
    Obrigado!
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2137
    Registrado : 22/11/2016

    [Resolvido]Verificar e avisar sobre duplicidade Empty Re: [Resolvido]Verificar e avisar sobre duplicidade

    Mensagem  DamascenoJr. em 28/3/2020, 16:16

    Verifique quais referências estão ativas.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 23/05/2011

    [Resolvido]Verificar e avisar sobre duplicidade Empty Re: [Resolvido]Verificar e avisar sobre duplicidade

    Mensagem  Ney Santos em 28/3/2020, 16:56

    Ola Damasceno !
    Priemeiramente obrigado pelo retorno, mas isso foi uma das primeiras coisas que fiz quando o erro apareceu.
    Deixei as mesmas referencias do Exemplo aqui postado.
    O mesmo assim o erro contnua
    Att
    Ney santos
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2137
    Registrado : 22/11/2016

    [Resolvido]Verificar e avisar sobre duplicidade Empty Re: [Resolvido]Verificar e avisar sobre duplicidade

    Mensagem  DamascenoJr. em 28/3/2020, 17:02

    poste seu arquivo.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 23/05/2011

    [Resolvido]Verificar e avisar sobre duplicidade Empty Re: [Resolvido]Verificar e avisar sobre duplicidade

    Mensagem  Ney Santos em 28/3/2020, 17:04

    veja a outra
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 23/05/2011

    [Resolvido]Verificar e avisar sobre duplicidade Empty Re: [Resolvido]Verificar e avisar sobre duplicidade

    Mensagem  Ney Santos em 28/3/2020, 17:29

    segue projeto:
    Anexos
    [Resolvido]Verificar e avisar sobre duplicidade AttachmentBanco de dados1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (44 Kb) Baixado 7 vez(es)
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2137
    Registrado : 22/11/2016

    [Resolvido]Verificar e avisar sobre duplicidade Empty Re: [Resolvido]Verificar e avisar sobre duplicidade

    Mensagem  DamascenoJr. em 28/3/2020, 17:55

    Você utiliza formulário desacoplado. Não dá pra usar recordsetclone referenciado do ME.

    Se preciso, monta um comando select e abra com o método openrecordset do objeto database


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 23/05/2011

    [Resolvido]Verificar e avisar sobre duplicidade Empty Re: [Resolvido]Verificar e avisar sobre duplicidade

    Mensagem  Ney Santos em 29/3/2020, 02:09

    Amigo não faço ideia de como faer isso poderia me dar um exemplo?
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2137
    Registrado : 22/11/2016

    [Resolvido]Verificar e avisar sobre duplicidade Empty Re: [Resolvido]Verificar e avisar sobre duplicidade

    Mensagem  DamascenoJr. em 29/3/2020, 02:54

    Tente isso

    Código:
    Dim Busca As String
    Dim stLinkCriteria As String

    Busca = Me.TXIDItem.Value
    stLinkCriteria = "IDPROD= '" & Busca & "'"

    If DCount("IDPROD", "SUBVENDAS", stLinkCriteria) > 0 Then
      Me.Undo
      MsgBox "Atenção, registro " & Busca & " ja existe.", vbInformation, "Duplicado"
    End If


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 23/05/2011

    [Resolvido]Verificar e avisar sobre duplicidade Empty Re: [Resolvido]Verificar e avisar sobre duplicidade

    Mensagem  Ney Santos em 29/3/2020, 03:03

    da erro em tempo de execução 3464:
    Tipo de dados de dados imcompativel na expresão de criterio:
    nesssa linha ====>If DCount("IDPROD", "SUBVENDAS", stLinkCriteria) > 0 Then
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2137
    Registrado : 22/11/2016

    [Resolvido]Verificar e avisar sobre duplicidade Empty Re: [Resolvido]Verificar e avisar sobre duplicidade

    Mensagem  DamascenoJr. em 29/3/2020, 03:07

    Substitua a linha
    Código:
    stLinkCriteria = "IDPROD= '" & Busca & "'"

    por esta
    Código:
    stLinkCriteria = "IDPROD= " & Busca

    Dica de estudo para sua evolução com programação
    Funcionamento das funções DLookup, DCount, DMax, com atenção especial na parte do filtro.

    Boa sorte, bons estudos.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 23/05/2011

    [Resolvido]Verificar e avisar sobre duplicidade Empty Re: [Resolvido]Verificar e avisar sobre duplicidade

    Mensagem  Ney Santos em 29/3/2020, 03:30

    valeu pelas dicas..
    Então corrigiu o problema em parte, pois independete do produto aj estar no pedido ele acusa a msgbox
    mas ai acho que por causa da busca
    creio que devo achar uma maneira de filtrar o produto num pedido especifico
    veja:
    If DCount("IDPROD", "SUBVENDAS", stLinkCriteria) <=== ele busca o código do produto na tabela sub vendas pelo que estou entendo se esse produto estiver em outro pedido com certeza vai ser localizado
    Fiz o teste lançando um dos itens que ainda nãoe stava em nehum dos pedidos e nao foi disparado a msg.
    depois em outro pedido lancei o mesmo produto e emsmo ele não constando no pedido deu a msg comose ja estivesse lançado.
    Caramba que função.. ta dando dor de cabeça já.
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 23/05/2011

    [Resolvido]Verificar e avisar sobre duplicidade Empty Re: [Resolvido]Verificar e avisar sobre duplicidade

    Mensagem  Ney Santos em 29/3/2020, 03:50

    Veja criei essa linha:
    Busca = ("SELECT * FROM SUBVENDAS WHERE IDVENDA = " & Me.TXIDVENDA & " AND IDPROD = " & Me.TXIDItem.Value & ""
    porem da erro : erro 3075
    Anexos
    [Resolvido]Verificar e avisar sobre duplicidade Attachmenterro.png
    Você não tem permissão para fazer download dos arquivos anexados.
    (30 Kb) Baixado 4 vez(es)
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 23/05/2011

    [Resolvido]Verificar e avisar sobre duplicidade Empty Re: [Resolvido]Verificar e avisar sobre duplicidade

    Mensagem  Ney Santos em 29/3/2020, 17:35

    o código ficou assim:

    Dim Busca As String
    Dim stLinkCriteria As String
    Busca = Me.TXIDVENDA
    stLinkCriteria = "IDPROD= " & Busca
    If DCount("IDPROD", "SUBVENDAS", stLinkCriteria) > 0 Then
      Me.Undo
      MsgBox "Atenção, registro " & Busca & " ja existe.", vbInformation, "Duplicado"
    End If
    Me.TXTOT = Me!TXQUANT * Me!TXPRECO
    Me.BTGRAVA.SetFocus
    Mas não adianta mesmo que o item nao exista no pedido a msg e disparada
    Estou ficando maluco de tantas tentativas que ja fiz para resolver o problema
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2137
    Registrado : 22/11/2016

    [Resolvido]Verificar e avisar sobre duplicidade Empty Re: [Resolvido]Verificar e avisar sobre duplicidade

    Mensagem  DamascenoJr. em 29/3/2020, 18:05

    Olha esse trecho

    Código:
    Busca = Me.TXIDVENDA
    stLinkCriteria = "IDPROD= " & Busca

    Vamos supor que TXIDVENDA tenha o valor 3, então ficaria

    Código:
    Busca = 3
    stLinkCriteria = "IDPROD= 3

    Ou seja, está misturado o ID de uma venda com o ID de um produto.

    Sugiro a você que reanalise todo o seu código. Evite copiar e colar as linhas de outros locais. Tente entender as funções. Só assim seu código pode ficar funcional.

    Veja isso (não quer dizer que seja a solução. Analise.)
    Código:
    Dim stLinkCriteria As String

    'buscar o código de um produto
    stLinkCriteria = "IDPROD = " & Me!TXIDItem

    'avaliando também se ele está no mesmo código da venda. (se venda estiver nulo então interprete 0)
    stLinkCriteria = stLinkCriteria & " AND IDVENDA = " & Nz(Me!TXIDVENDA, 0)

    If DCount("*", "SUBVENDAS", stLinkCriteria) > 0 Then

        MsgBox "Atenção, registro ja existe.", vbInformation, "Duplicado"
       
        Beep
        If MsgBox("Continuar?", vbQuestion + vbYesNo, "Continuar") = vbNo Then
            Me.Undo
            Cancel = True
            Exit Sub
        End If
       
    End If


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 23/05/2011

    [Resolvido]Verificar e avisar sobre duplicidade Empty Re: [Resolvido]Verificar e avisar sobre duplicidade

    Mensagem  Ney Santos em 29/3/2020, 18:52

    Prezado Damasceno..!
    Obrigado pelas dicas, seu exemplo funcionou ´so fia uams adaptaçoes quanto ao aviso para o usuario.
    Muito obrigado, vou estudar mais...
    Queo dar por resolvido porem nao localizo onde..
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2137
    Registrado : 22/11/2016

    [Resolvido]Verificar e avisar sobre duplicidade Empty Re: [Resolvido]Verificar e avisar sobre duplicidade

    Mensagem  DamascenoJr. em 29/3/2020, 18:59



    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 23/05/2011

    [Resolvido]Verificar e avisar sobre duplicidade Empty Re: [Resolvido]Verificar e avisar sobre duplicidade

    Mensagem  Ney Santos em 30/3/2020, 02:52

    Topico resolvido
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2137
    Registrado : 22/11/2016

    [Resolvido]Verificar e avisar sobre duplicidade Empty Re: [Resolvido]Verificar e avisar sobre duplicidade

    Mensagem  DamascenoJr. em 30/3/2020, 02:57

    O fórum agradece o retorno. Sucesso.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

      Data/hora atual: 10/8/2020, 07:10