Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Não Permitir Cadastro Duplicado.
Moderador: joseA
Não Permitir Cadastro Duplicado.
Boa tarde amigos, alguém pode ajudar-me com este código para não cadastrar duplicado?
Banco de dados é Access.
Obrigado, Deus abençoe...
Private Sub btnGravar_Click()
If Me.txt_cnpj_cpf = Empty Then
MsgBox "Digite Cnpj/Cpf.", vbExclamation, "Atenção"
Me.txt_cnpj_cpf.SetFocus
Exit Sub
End If
If Inc = True Then
rsOrçDetum.AddNew
Else
rsOrçGradum.Close
SqlOrçGradum = "DELETE FROM tbOrçamento_Grade1 WHERE Nro_Orçamento = " & NroOrçum 'Apaga os registros antigos
rsOrçGradum.Open SqlOrçGradum, cn, adOpenKeyset, adLockOptimistic 'pra incluir os dados atualizados
SqlOrçGradum = "SELECT * FROM tbOrçamento_Grade1"
rsOrçGradum.Open SqlOrçGradum, cn, adOpenKeyset, adLockOptimistic
End If
rsOrçDetum(1) = Date
rsOrçDetum(2) = Me.txtNome
rsOrçDetum(3) = Me.txtObservaçoes
rsOrçDetum(4) = Me.txtTelefone
rsOrçDetum(5) = Me.txt_contato
rsOrçDetum(6) = Me.txt_email
rsOrçDetum(7) = Me.txt_endereço
rsOrçDetum(8) = Me.txt_cnpj_cpf
rsOrçDetum(9) = Me.txt_ie
rsOrçDetum(10) = Me.TXT_NUMERO
rsOrçDetum(11) = Me.txt_bairro
rsOrçDetum(12) = Me.txt_cep
rsOrçDetum(13) = Me.txt_cidade
rsOrçDetum(14) = Me.txt_uf
rsOrçDetum.Update
For i = 1 To Me.lstvOrç.ListItems.Count
With Me.lstvOrç
rsOrçGradum.AddNew
rsOrçGradum(0) = NroOrçum
rsOrçGradum(1) = .ListItems(i)
rsOrçGradum(2) = .ListItems(i).ListSubItems(1)
rsOrçGradum.Update
End With
Next i
If Inc = True Then
rsNroum.AddNew
rsNroum(0) = NroOrçum
rsNroum.Update
End If
LimpaControles
rsNroum.MoveLast
NroOrçum = rsNroum(0).Value + 1
Me.stbOrç.Panels(1) = NroOrçum
iCancel = 0
MsgBox "Registro Salvo Com Sucesso.", vbInformation, "Clientes"
Me.btnLer.Enabled = True
Dim resposta As String
resposta = MsgBox("Deseja Inserir O Veículo Do Cliente?", 4 + vbQuestion, "Aviso")
Select Case resposta
Case vbYes
Case vbNo
Exit Sub
End Select
Unload Me
Cadastro_Veiculo.Show
End Sub
Banco de dados é Access.
Obrigado, Deus abençoe...
Private Sub btnGravar_Click()
If Me.txt_cnpj_cpf = Empty Then
MsgBox "Digite Cnpj/Cpf.", vbExclamation, "Atenção"
Me.txt_cnpj_cpf.SetFocus
Exit Sub
End If
If Inc = True Then
rsOrçDetum.AddNew
Else
rsOrçGradum.Close
SqlOrçGradum = "DELETE FROM tbOrçamento_Grade1 WHERE Nro_Orçamento = " & NroOrçum 'Apaga os registros antigos
rsOrçGradum.Open SqlOrçGradum, cn, adOpenKeyset, adLockOptimistic 'pra incluir os dados atualizados
SqlOrçGradum = "SELECT * FROM tbOrçamento_Grade1"
rsOrçGradum.Open SqlOrçGradum, cn, adOpenKeyset, adLockOptimistic
End If
rsOrçDetum(1) = Date
rsOrçDetum(2) = Me.txtNome
rsOrçDetum(3) = Me.txtObservaçoes
rsOrçDetum(4) = Me.txtTelefone
rsOrçDetum(5) = Me.txt_contato
rsOrçDetum(6) = Me.txt_email
rsOrçDetum(7) = Me.txt_endereço
rsOrçDetum(8) = Me.txt_cnpj_cpf
rsOrçDetum(9) = Me.txt_ie
rsOrçDetum(10) = Me.TXT_NUMERO
rsOrçDetum(11) = Me.txt_bairro
rsOrçDetum(12) = Me.txt_cep
rsOrçDetum(13) = Me.txt_cidade
rsOrçDetum(14) = Me.txt_uf
rsOrçDetum.Update
For i = 1 To Me.lstvOrç.ListItems.Count
With Me.lstvOrç
rsOrçGradum.AddNew
rsOrçGradum(0) = NroOrçum
rsOrçGradum(1) = .ListItems(i)
rsOrçGradum(2) = .ListItems(i).ListSubItems(1)
rsOrçGradum.Update
End With
Next i
If Inc = True Then
rsNroum.AddNew
rsNroum(0) = NroOrçum
rsNroum.Update
End If
LimpaControles
rsNroum.MoveLast
NroOrçum = rsNroum(0).Value + 1
Me.stbOrç.Panels(1) = NroOrçum
iCancel = 0
MsgBox "Registro Salvo Com Sucesso.", vbInformation, "Clientes"
Me.btnLer.Enabled = True
Dim resposta As String
resposta = MsgBox("Deseja Inserir O Veículo Do Cliente?", 4 + vbQuestion, "Aviso")
Select Case resposta
Case vbYes
Case vbNo
Exit Sub
End Select
Unload Me
Cadastro_Veiculo.Show
End Sub
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Não Permitir Cadastro Duplicado.
O Access; por padrão, se as tabelas forem configuradas corretamente; impede a inclusão de duplicidade.
Outra maneira e verificar/consultar, antes da inclusão, se o registro existe.
Pelo código postado fica difícil, pelo menos para mim; definir a maneira.
Se não houver resultado; poste seu modelo, ou um modelo significativo com dados fictícios.
Outra maneira e verificar/consultar, antes da inclusão, se o registro existe.
Pelo código postado fica difícil, pelo menos para mim; definir a maneira.
Se não houver resultado; poste seu modelo, ou um modelo significativo com dados fictícios.
Re: Não Permitir Cadastro Duplicado.
Bom dia, Segue arquivo amigo...Reinaldo escreveu: ↑Ter Jan 11, 2022 11:53 am O Access; por padrão, se as tabelas forem configuradas corretamente; impede a inclusão de duplicidade.
Outra maneira e verificar/consultar, antes da inclusão, se o registro existe.
Pelo código postado fica difícil, pelo menos para mim; definir a maneira.
Se não houver resultado; poste seu modelo, ou um modelo significativo com dados fictícios.
senha vba 563102
- Anexos
-
- TESTE.rar
- (222.04 KiB) Baixado 197 vezes
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Não Permitir Cadastro Duplicado.
CROVADOR, o editor vbe está com senha.
Qual o critério para definir duplicidade e em qual tabela
Qual o critério para definir duplicidade e em qual tabela
Re: Não Permitir Cadastro Duplicado.
Boa tarde,
Senha 563102
no textbox cpf/cnpj tabela tbOrç_Detalhe1
Usei o critério abaixo, mas porém quando vou selecionar para editar ele diz que já existe....
Private Sub txt_cnpj_cpf_AfterUpdate()
On Error Resume Next
Dim ComandoSQL As String
SqlOrçDetum = "SELECT * FROM tbOrç_Detalhe1" 'Listagem de Orçamentos
Set rsOrçDetum = New ADODB.Recordset
rsOrçDetum.Open SqlOrçDetum, cn, adOpenKeyset, adLockOptimistic
Do Until rsOrçDetum.EOF
If rsOrçDetum(8) = "" & Me.txt_cnpj_cpf.Text Then
MsgBox "CNPJ/CPF " & Me.txt_cnpj_cpf.Text & " É Existente!", vbInformation, "Cadastro Duplicado!"
txtNome = Empty
txt_cnpj_cpf = Empty
txt_ie = Empty
Exit Sub
End If
rsOrçDetum.MoveNext
Loop
End Sub