ASP CLASSICO ASP.NET C# SQL / DATABASE VB / VBA VB.NET Todos os fóruns 

IMPEDIR DUPLICADO

 Tópico anterior Próximo tópico Novo tópico

IMPEDIR DUPLICADO

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#470456 - 08/01/2017 00:23:47

FANYSLZ
SAO LUIS
Cadast. em:Janeiro/2017


Oi pessoal, como faço para impedir nome duplicado no textbox?

(montei este exemplo. Mas as duplicidades de nomes esta passando) segue o exemplo.

'Declaração
Dim Cnn As ADODB.Connection
Dim Rst As ADODB.Recordset

Private Sub txtNome_LostFocus()
'Função para não aceitar duplicidade
If Trim(txtNome.Text) = "" Then Exit Sub
txtNome = MMCase(txtNome.Text)
Dim SQL As String
SQL = "SELECT IDCodigo FROM tblDados Where Nome = '" & txtNome.Text & "'"
If Rst.RecordCount > 0 Then
If CInt(Rst(0).Value) <> CInt(txtMatricula.Text) Then
MsgBox "O Nome do Sócio já existe cadastrado no Banco de Dados.", vbCritical, "Nome Duplicado"
txtNome.SetFocus
End If
End If
End Sub

Grata,

Fany


Fany

#470457 - 08/01/2017 01:53:03

DAMASCENO.CESAR
ADAMANTINA
Cadast. em:Fevereiro/2009


Fany, de acordo com seu exemplo, voce não carregou os dados no recordset, então o numero de registros sempre será zero. Neste caso seu teste não funcionará




O conhecimento é como o dinheiro: quanto mais temos, mais queremos ter (Josh Billings)  


#470458 - 08/01/2017 03:58:23

FANYSLZ
SAO LUIS
Cadast. em:Janeiro/2017


Citação:
:
Fany, de acordo com seu exemplo, voce não carregou os dados no recordset, então o numero de registros sempre será zero. Neste caso seu teste não funcionará




Cite um exemplo de Recordset???

Fany

#470459 - 08/01/2017 08:15:28

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


A sua consulta e registros de sócios mais segura é pelo CPF.Ninguém tem dois.
Homônimo pode existir apesar de ter poucos.



#470461 - 08/01/2017 10:50:03

FANYSLZ
SAO LUIS
Cadast. em:Janeiro/2017


Citação:
:
A sua consulta e registros de sócios mais segura é pelo CPF.Ninguém tem dois.
Homônimo pode existir apesar de ter poucos.


E como seria esse código por CPF?

Fany

#470465 - 08/01/2017 12:25:39

SINCLAIR
CRICIUMA
Cadast. em:Janeiro/2001


FANYSLZ,

Citação:
E como seria esse código por CPF?


A resposta é muito simples.
Tão simples que não sei se entendi sua pergunta.

Por uma query SQL verifique se o CPF ou CNPJ já está cadastrado. Pode ser quando perder o foco, quando completar a digitação (tamanho digitado igual a 11 ou 14, para CPF e CNPJ respectivamente) ou quando clicar em algum botão de gravação dos dados.



Euzébio Cruz
Criciúma - SC


#470466 - 08/01/2017 13:00:09

FANYSLZ
SAO LUIS
Cadast. em:Janeiro/2017


Citação:
:
FANYSLZ,

E como seria esse código por CPF?

A resposta é muito simples.
Tão simples que não sei se entendi sua pergunta.

Por uma query SQL verifique se o CPF ou CNPJ já está cadastrado. Pode ser quando perder o foco, quando completar a digitação (tamanho digitado igual a 11 ou 14, para CPF e CNPJ respectivamente) ou quando clicar em algum botão de gravação dos dados.



Já tem a verificação de digitação do CPF

Grata,

Fany

#470467 - 08/01/2017 13:02:13

FANYSLZ
SAO LUIS
Cadast. em:Janeiro/2017


Citação:
:
FANYSLZ,

E como seria esse código por CPF?

A resposta é muito simples.
Tão simples que não sei se entendi sua pergunta.

Por uma query SQL verifique se o CPF ou CNPJ já está cadastrado. Pode ser quando perder o foco, quando completar a digitação (tamanho digitado igual a 11 ou 14, para CPF e CNPJ respectivamente) ou quando clicar em algum botão de gravação dos dados.



só queria um exemplo de IMPEDIR DUPLICADO no textbox.

Fany

#470468 - 08/01/2017 13:08:55

SINCLAIR
CRICIUMA
Cadast. em:Janeiro/2001


Última edição em 08/01/2017 13:18:40 por SINCLAIR

FANYSLZ,

Para impedir duplicado no textbox, você precisa aguardar pelo usuário digitar, para depois saber se o que ele digitou já existe, correto?

Pois bem. Após a digitação, proceda a verificação no seu banco de dados para saber se o que foi digitado já existe, na forma como te passei acima (por uma query simples).

Se sua pesquisa para verificar duplicidade realmente será pelo nome (desaconselhado) certifique-se de que o nome digitado na textbox não tenha acentuação ou maiúscula/minúscula diferente do que está cadastrado.

Exemplos:

JOAO é diferente de JOÃO (acento)
André é diferente de ANDRÉ (maiúsculas/minúsculas)

Ademais, neste trecho de código

SQL = "SELECT IDCodigo FROM tblDados Where Nome = '" & txtNome.Text & "'"
If Rst.RecordCount > 0 Then


Você assimilou a query à variável de nome SQL, mas nunca executou a query e já foi direto verificar o recordcout.

Teria que fazer algo como...

SQL = "SELECT IDCodigo FROM tblDados Where Nome = '" & txtNome.Text & "'"
set Rst = Cnn.execute(SQL)
If Rst.RecordCount > 0 Then


Também tenha certeza que seu Cnn abriu (Cnn.Open) o banco de dados.





Euzébio Cruz
Criciúma - SC


#470480 - 08/01/2017 22:15:13

FANYSLZ
SAO LUIS
Cadast. em:Janeiro/2017


Citação:
:
FANYSLZ,

Para impedir duplicado no textbox, você precisa aguardar pelo usuário digitar, para depois saber se o que ele digitou já existe, correto?

Pois bem. Após a digitação, proceda a verificação no seu banco de dados para saber se o que foi digitado já existe, na forma como te passei acima (por uma query simples).

Se sua pesquisa para verificar duplicidade realmente será pelo nome (desaconselhado) certifique-se de que o nome digitado na textbox não tenha acentuação ou maiúscula/minúscula diferente do que está cadastrado.

Exemplos:

JOAO é diferente de JOÃO (acento)
André é diferente de ANDRÉ (maiúsculas/minúsculas)

Ademais, neste trecho de código

SQL = "SELECT IDCodigo FROM tblDados Where Nome = '" & txtNome.Text & "'"
If Rst.RecordCount > 0 Then


Você assimilou a query à variável de nome SQL, mas nunca executou a query e já foi direto verificar o recordcout.

Teria que fazer algo como...

SQL = "SELECT IDCodigo FROM tblDados Where Nome = '" & txtNome.Text & "'"
set Rst = Cnn.execute(SQL)
If Rst.RecordCount > 0 Then


Também tenha certeza que seu Cnn abriu (Cnn.Open) o banco de dados.





Euzébio,

Fiz conforme seu exemplo.
Não deu certo...

Fany

#470481 - 08/01/2017 23:40:02

POCE1DON
GOIANIA
Cadast. em:Julho/2010


Olha Fany, se está iniciando seu projeto agora, talvez seja interessante vc manter um padrão de digitação, como texto nos textbox apenas em maiúsculo, não permitir acentuações e (ç), números de cpf/cnpj sem "-" ou "/", assim, essa formatação vc faz quando exibir os dados ao usuário, e suas buscas ficam mais exatas.

Quanto à sua busca, tente assim:

RST.open SQL, CNN, ADOPENFORWARDONLY, ADLOCKREADONLY

IF RST.EOF = FALSE THEN
msgbox "já existe"
ELSE
msgbox "não existe"
END IF

RST.close

tenha certeza que sua busca está exatamente como armazenada



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por FANYSLZ em 11/01/2017 12:45:20