MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

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


3 participantes

    Duplicação

    avatar
    m_sousa
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 165
    Registrado : 06/11/2020

    Duplicação Empty Duplicação

    Mensagem  m_sousa 9/11/2020, 15:07

    Olá

    Onde estou a errar ?! Quero proibir a duplicação de registo. Coloquei o meu código desta forma. Sendo o campo NumeroUtente e o form frmUtentes.

    Código:
    Private Sub NumeroUtente_BeforeUpdate(Cancel As Integer)
    Dim Busca As String
    Dim stLinkCriteria As String
    Dim rsc As DAO.Recordset
    Set rsc = Me.RecordsetClone
    Busca = Me.NumeroUtente.Value
    stLinkCriteria = " NumeroUtente= '" & Busca & "'"
    If DCount("NumeroUtente", "frmUtentes", stLinkCriteria) > 0 Then
    Me.Undo
    MsgBox "Atenção !!!" _
    & Busca & " O Número de Utente que está a introduzir já existe." _
    & vbCr & vbCr & "Irá ser mostrado o Registo associado ao respectivo documento.", vbInformation _
    , "Registo Duplicado"
    rsc.FindFirst stLinkCriteria
    Me.Bookmark = rsc.Bookmark
    End If
    Set rsc = Nothing
    End Sub

    Da erro nesta linha : If DCount("NumeroUtente", "frmUtentes", stLinkCriteria) > 0 Then

    Obrigado

    Um bem hajam !
    avatar
    zcarloslopes
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 393
    Registrado : 28/10/2010

    Duplicação Empty Re: Duplicação

    Mensagem  zcarloslopes 9/11/2020, 15:12

    Boa tarde m_sousa,

    Se NumeroUtente é Número e não String então tente alterar:
    Código:
    stLinkCriteria = " NumeroUtente= '" & Busca & "'"
    para
    Código:
    Dim Busca As Integer
    stLinkCriteria = "NumeroUtente= " & Busca
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    Duplicação Empty Re: Duplicação

    Mensagem  Alexandre Neves 9/11/2020, 15:14

    Boa tarde e bem-vindo ao fórum
    Será no tipo de dados, talvez seja numérico
    stLinkCriteria = "NumeroUtente=" & Busca


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    m_sousa
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 165
    Registrado : 06/11/2020

    Duplicação Empty Re: Duplicação

    Mensagem  m_sousa 9/11/2020, 15:51

    Obrigado

    Continua a marcar a linha : stLinkCriteria = "NumeroUtente= " & Busca

    Código:
    Private Sub NumeroUtente_AfterUpdate()
    Dim Busca As Integer
    Dim stLinkCriteria As Integer
    Dim rsc As DAO.Recordset
    Set rsc = Me.RecordsetClone
    Busca = Me.NumeroUtente.Value
    stLinkCriteria = "NumeroUtente= " & Busca
    If DCount("NumeroUtente", "tabUtentes", stLinkCriteria) > 0 Then
    Me.Undo
    MsgBox "Atenção !!!" _
    & Busca & " O Número de Utente que está a introduzir já existe." _
    & vbCr & vbCr & "Irá ser mostrado o Registo associado ao respectivo documento.", vbInformation _
    , "Registo Duplicado"
    rsc.FindFirst stLinkCriteria
    Me.Bookmark = rsc.Bookmark
    End If
    Set rsc = Nothing
    End Sub
    avatar
    zcarloslopes
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 393
    Registrado : 28/10/2010

    Duplicação Empty Re: Duplicação

    Mensagem  zcarloslopes 9/11/2020, 16:04

    A seguir a:
    Código:
    Busca = Me.NumeroUtente.Value
    cloque
    Código:
    MsgBox (Busca)
    para ver o que retorna..
    avatar
    m_sousa
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 165
    Registrado : 06/11/2020

    Duplicação Empty Re: Duplicação

    Mensagem  m_sousa 9/11/2020, 16:10

    Retorna o número digitado . . .

    https://i.servimg.com/u/f40/20/27/88/58/110.png
    avatar
    zcarloslopes
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 393
    Registrado : 28/10/2010

    Duplicação Empty Re: Duplicação

    Mensagem  zcarloslopes 9/11/2020, 16:22

    Altere
    Código:
    Dim stLinkCriteria As String
    para
    Código:
    Dim stLinkCriteria As Integer
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    Duplicação Empty Re: Duplicação

    Mensagem  Alexandre Neves 9/11/2020, 16:27

    Colocou o código AntesDeActualizar, deve pôr AposActualizar


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Conteúdo patrocinado


    Duplicação Empty Re: Duplicação

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/4/2024, 02:01