Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Bloquear duplicatas


Tárcio Sales

Pergunta

Boa noite, grandes!!!

Amigos sou novo no fórum e novamente gostaria de parabenizar e agradecer os idealizadores desse grande trabalho.

Pois bem, estou com um problema em um sistema que já terminei e só falta essa função para o encerramente de uma vez por todas.

Tenho uma tabela onde não posso ter dados repetidos.

De diversas formas tentei bloquear:

- dlookup, Chave Primária e etc...

Grande selva será alguém pode me dar uma luz, por favor???? :wacko:

Meu muito obrigado a todos! :closedeyes:

Att

Tárcio Sales

Editado por Tárcio Sales
Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Olá Leandro....

Desculpe se não fui muito claro..

Vou tentar fazer um exemplo aqui.

Tabela

Tbl_Atestados

Campos

Matricula; DataInicial; DataFinal; Dias; CID; DescCID; OBS

Resgistros

123 - 01/01 - 05/01 - 05 - H10 - Conjutivite - xx

123 - 01/01 - 05/01 - 05 - H10 - Conjutivite - xx

123 - 01/01 - 05/01 - 05 - H10 - Conjutivite - xx

... Bom gostaria que no ato que fosse incluso registros repetidos, fosse aberto um msgbox assim bloqueando a duplicidade.

É isso.

Fico no aguardo,

Att

Editado por Tárcio Sales
Link para o comentário
Compartilhar em outros sites

  • 0

Olá Leandro,

Muitissimo obrigado pelo retorno.

Estarei estudando seu exemplo, e depois dou um retorno ao forum.

Novamente muito obrigado!!!

Att

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Leandro.

Não consegui fazer o que quero.

Neste exemplo:

Matricula; DataInicial; DataFinal; Dias; CID; DescCID; OBS

Resgistros

123 - 01/01 - 05/01 - 05 - H10 - Conjutivite - xx

123 - 01/01 - 05/01 - 05 - H10 - Conjutivite - xx

123 - 01/01 - 05/01 - 05 - H10 - Conjutivite - xx

Gostaria que 3 campos dessa tabela não aceitasse duplicidade.

Por exemplo:

Resgistros

123 - 01/01 - 05/01 - 05 - H10 - Conjutivite - xx

123 - 02/0 - 05/01 - 04 - Z00 - Outros - xx

123 - 01/01 - 05/01 - 05 - H10 - Conjutivite - xx

Que são:

Data_Inicial, o CID e a Matricula

Nesses 3 campos juntos se fossem iguais à algum registro na tabela, me bloqueasse a entrada (aparecendo o MSGBOX).

Entendeu?!

Vlw! Fico no aguardo,

Att

Link para o comentário
Compartilhar em outros sites

  • 0

Uma simples chave primária já resolveria uma parte disso, e o restante bastaria ir fazendo valdiações usando o dllokup e/ou outro procedimento e mostrando a mensagem após cada item validado na hora da entrada de dados ok!

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Leandro,

Meu caro colega é exatamente isso que estou atras a um bom tempo. Mas, infelizmente ainda não está ok.

Estive estudando seu código e verifiquei que ele só server para campos TIPO numero. E em minha necessidade estou precisando para campos TEXTO e DATA, como posso alterar isso?

Fico no aguardo,

E muito obrigado!!!!

Att

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde Tárcio,

Para usar para estes outros, utilize:

Set Rst = CurrentDb.OpenRecordset("SELECT nome, idade, cep From tbl_geral WHERE nome='" & strCli & "' AND Idade=" & strIdade & " AND CEP='" & strCep & "' ")

Pode ver que tem um ' no campo texto (strcli e strcep) que não tem no campo número (stridade).

Postado no versão: http://www.abbade.site40.net/access/dicas/...ltaneamente.zip

Aguardo contato.

Link para o comentário
Compartilhar em outros sites

  • 0

sdsBoa Noite, Leandro...

Mais uma vez muito obrigado!

Meu caro......... Funcionou!!!!!..... Mas tive que alterar mais uma coisa....

Veja o código que inseri e o que tive que alterar. Está legal do jeito que estava querendo.

Obrigado!

Private Sub Comando20_Click()
On Error GoTo Err_Comando20_Click
'Contribuição do amigo Leandro Abbade - ScriptBrasil 2009

Dim Rst As Recordset, strMat As String
Dim strCID As String, [b]cData As Currency[/b]    'Alterei aqui


strMat = Me.Matricula
cData = Me.Data_inicial
strCID = Me.CID

 Set Rst = CurrentDb.OpenRecordset("SELECT Matricula, Data_Inicial, CID From tbl_at WHERE Matricula='" & strMat & "' AND Data_Inicial=" & cData & " AND CID= '" & strCID & "' ")

If Not Rst.EOF Then
    MsgBox "Atestado já registrado...Digite um atestado válido.", vbCritical, "Registro Duplicado"
    Cancel = True
    Me.Undo
Set Rst = Nothing

Else
DoCmd.GoToRecord , , acNewRec

End If
Exit_Comando20_Click:
    Exit Sub

Então é isso....

Novamente meu muito obrigado!!!

Qualquer novidade estou ae.

Forte abraço.

Att

Link para o comentário
Compartilhar em outros sites

  • 0

Meus parabéns Tárcio,

Fico feliz que tenha conseguido.

Sempre que precisar estou as ordens.

Como estou falando com meus amigos tanto deste fórum como de outros. Se quiser pode publicar seus trabalho no meu site. É só me enviar um email com o sistema e/ou dica com alguma descrição sobre o trabalho.

Um grande abraço!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...