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]Código para não duplicar Registros

    avatar
    Bessa_SP
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 219
    Registrado : 07/11/2013

    [Resolvido]Código para não duplicar Registros Empty [Resolvido]Código para não duplicar Registros

    Mensagem  Bessa_SP em 1/2/2019, 18:04

    Boa tarde Sr.

    Estou trabalhando no formulário de entrada de produtos no estoque e não quero que a Nf seja lançada em duplicidade, tentei o seguinte código abaixo:

    Código:
    Private Sub Txt_NF_Entrada_BeforeUpdate(Cancel As Integer)

    Dim Busca As String
    Dim stLinkCriteria As String
    Dim rsc As DAO.Recordset
    Set rsc = Me.RecordsetClone
    Busca = Me.Txt_NF_Entrada.Value
    stLinkCriteria = "NF_Entrada= '" & Busca & "'"
    If DCount("NF_Entrada", "tbl_entrada", stLinkCriteria) > 0 Then
    Me.Undo
    MsgBox "Atenção a NF " _
    & Busca & "  já existe." _
    & vbCr & vbCr & "Escolha outro cliente.", vbInformation _
    , "Duplicado"
    rsc.FindFirst stLinkCriteria
    Me.Bookmark = rsc.Bookmark
    End If
    Set rsc = Nothing

    E na linha do Dcount (está dando erro 3464 - Tipos de dados incompatíveis no critério), sr.s já revisei esse código várias vezes e não consigo encontrar o erro.
    Alguém pode me ajudar
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10604
    Registrado : 04/11/2009

    [Resolvido]Código para não duplicar Registros Empty Re: [Resolvido]Código para não duplicar Registros

    Mensagem  JPaulo em 1/2/2019, 19:21



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Código para não duplicar Registros Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Código para não duplicar Registros Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Código para não duplicar Registros Folder_announce_new Instruções SQL como utilizar...
    avatar
    Bessa_SP
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 219
    Registrado : 07/11/2013

    [Resolvido]Código para não duplicar Registros Empty Código para não duplicar Registros

    Mensagem  Bessa_SP em 1/2/2019, 19:35

    Boa tarde Professor!

    JPaulo

    Amigo estou confuso pois no seu exemplo você coloca como duas condições para dois campos, no meu caso estou precisando somente do campo NF_Entrada, e desculpe minha ignorância, mas tentei adaptar e não consegui...
    Na minha adaptação o código ficou assim:
    Código:
    Public Sub DetetaDuplicidade()
    'By JPaulo ®️ Maximo Access
    Dim rst As DAO.Recordset
    Dim strCriteria As String

       strCriteria = "([nf_Entrada] = '" & Me.Txt_NF_Entrada & "')    "
       Set rst = Me.RecordsetClone
       rst.FindFirst strCriteria
       
       If rst.NoMatch Then
           Exit Sub
       Else
          If MsgBox("Existe NF cadastrada com este Número!" & Chr(10) + Chr(13) & "Deseja encontra-lo?", vbYesNo + vbInformation, "Atenção") = vbYes Then
           Cancel = True
           Me.Undo
           Me.Bookmark = rst.Bookmark
       End If
    End If
       Set rst = Nothing

    O erro está aparecendo na linha :

    rst.FindFirst strCriteria


    Obrigado pela colaboração.
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10604
    Registrado : 04/11/2009

    [Resolvido]Código para não duplicar Registros Empty Re: [Resolvido]Código para não duplicar Registros

    Mensagem  JPaulo em 1/2/2019, 21:02

    Amigo, nf_Entrada é o seu campo da tabela ?
    É número ou texto ou data ?

    Para texto:
    strCriteria = "[nf_Entrada] = '" & Me.Txt_NF_Entrada & "'"

    Para número:
    strCriteria = "[nf_Entrada] = " & Me.Txt_NF_Entrada

    Para data:
    strCriteria = "[nf_Entrada] = #" & Me.Txt_NF_Entrada & "#"




    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Código para não duplicar Registros Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Código para não duplicar Registros Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Código para não duplicar Registros Folder_announce_new Instruções SQL como utilizar...
    avatar
    Bessa_SP
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 219
    Registrado : 07/11/2013

    [Resolvido]Código para não duplicar Registros Empty Código para não duplicar Registros

    Mensagem  Bessa_SP em 2/2/2019, 10:39

    Bom dia Professor JPaulo

    Mais uma vez a sua solução foi providencial, obrigado mesmo.

    O NF_entrada é um campo numérico da minha tabela.
    Coloquei esse código:
    strCriteria = "[nf_Entrada] = " & Me.Txt_NF_Entrada

    E deu tudo certo.

    Valeu grande mestre.
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10604
    Registrado : 04/11/2009

    [Resolvido]Código para não duplicar Registros Empty Re: [Resolvido]Código para não duplicar Registros

    Mensagem  JPaulo em 2/2/2019, 14:38

    Fico feliz
    Obrigado pelo retorno o fórum agradece.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Código para não duplicar Registros Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Código para não duplicar Registros Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Código para não duplicar Registros Folder_announce_new Instruções SQL como utilizar...
    avatar
    Bessa_SP
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 219
    Registrado : 07/11/2013

    [Resolvido]Código para não duplicar Registros Empty Código para não duplicar Registros

    Mensagem  Bessa_SP em 26/4/2019, 18:24

    Boa tarde Professor!
    JPaulo

    Me perdoe pois tinha colocado a duvida como RESOLVIDO, porém apareceu um erro e sinceramente não sei aonde está errado, veja o código abaixo:

    Public Sub DetetaDuplicidade()
    'By JPaulo ®? Maximo Access
    Dim rst As DAO.Recordset
    Dim strCriteria As String

    strCriteria = "([nf_Entrada]) = " & Me.Txt_NF_Entrada ("Esse campo é númerico")
    Set rst = Me.RecordsetClone
    rst.FindFirst strCriteria

    If rst.NoMatch Then
    Exit Sub
    Else
    If MsgBox("Existe NF cadastrada com este Número!" & Chr(10) + Chr(13) & "Deseja encontra-lo?", vbYesNo + vbInformation, "Atenção") = vbYes Then
    Cancel = True
    Me.Undo
    Me.Bookmark = rst.Bookmark
    End If
    End If
    Set rst = Nothing
    End Sub

    E criei um Botão Btn_Atualizar
    Private Sub btn_atualizar_Click()
    Call deletaduplicidade
    Me.Recalc

    Está dando um erro de compilação:
    'Sub' ou 'Function' não definida

    Agradeço Professor...
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10604
    Registrado : 04/11/2009

    [Resolvido]Código para não duplicar Registros Empty Re: [Resolvido]Código para não duplicar Registros

    Mensagem  JPaulo em 26/4/2019, 19:21

    O sub deletaduplicidade não existe mesmo.
    Existe é o DetetaDuplicidade()


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Código para não duplicar Registros Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Código para não duplicar Registros Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Código para não duplicar Registros Folder_announce_new Instruções SQL como utilizar...
    avatar
    Bessa_SP
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 219
    Registrado : 07/11/2013

    [Resolvido]Código para não duplicar Registros Empty Código para não duplicar Registros

    Mensagem  Bessa_SP em 27/4/2019, 13:08

    Bom dia Professor JPaulo

    Primeiro me perdoe pela falha, sinceramente eu não vi que os nomes estavam errados...
    Mais uma vez muito obrigado pela sua ajuda...

    Bom Professor realmente o código resolveu em partes meu problema, pois ele busca a nf já lançada, porém ele está gerando um novo item.
    Vou abrir uma outra postagem para tentar resolver esse outro problema.

    Obrigado pela ajuda!!!!

      Data/hora atual: 19/10/2020, 17:01