USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Dúvida com banco de dados
André
não registrado
ENUNCIADA !
Postada em 08/05/2008 17:35 hs   
Olá pessoal.

Gostaria de saber alguma forma de fazer uma comparação de um dado que eu estou inserindo com os que ja estão armazenados no banco.
Meu banco de dados esta em access.Minha intensão é fazer com que no momento em que eu salvo cada registro faz-se antes uma comparação de um dado para ver se ja exixte,caso ja existente é cancelada a operação de salvar.
No caso o dado de camparação que eu tenho é o CPF de uma pessoa que no meu banco é o indice também.
Se alguém puder dar uma dica.

Valew
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 08/05/2008 17:57 hs            
Primeiro não sabemos ainda como você esta fazendo pra incluir dados na sua tabela, mas
em sql seria assim
 
slq="SELECT * FROM tabela WHERE cpf='" & txtCPF.text & "'"
set verif=tb.open sql
 
if not verif.EOF then
msgbox" CPF já está cadastrado! "
end if
 
 
 
   
André
não registrado
Postada em 09/05/2008 09:30 hs   
Segue ai a rotina que eu criei para salvar o dados
 
Private Sub CmdSalvar_Click()
Dim valcpf As Boolean
 
If TextNome.Text = Empty Then
  MsgBox " DIGITE O NOME ", vbExclamation, " INSERIR REGISTRO "
  TextNome.SetFocus
  Exit Sub
End If
If TextIdade.Text = Empty Then
  MsgBox " DIGITE A IDADE ", vbExclamation, " INSERIR REGISTRO "
  TextIdade.SetFocus
  Exit Sub
End If
If TextCPF.Text = Empty Then
  MsgBox " DIGITE O CPF ", vbExclamation, " INSERIR REGISTRO "
  TextCPF.SetFocus
  Exit Sub
End If
If Len(TextCPF.Text) <> 11 Then
    MsgBox "CPF DEVE TER 11 DÍGITOS!", vbExclamation, "INSERIR REGISTRO"
    TextCPF.SetFocus
    Exit Sub
Else
   valcpf = isCPF(TextCPF.Text)
   If valcpf = False Then
     MsgBox " ESTE CPF É INVÁLIDO!", vbCritical, "INSERIR REGISTRO"
     TextCPF.SetFocus
     Exit Sub
   End If
End If
Data1.UpdateRecord
Data1.Recordset.Bookmark = Data1.Recordset.MaxModified
End Sub
     
Los Zeus®
Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 09/05/2008 10:13 hs            
Pode ser feito um loop
 
Tabela.MoveF i r s t
While Tabela.EOF = false
  If TxtCPF.text = tabela.field!CPF then
      MsgBox "Cadastro já existe"
      End
  Else
     Tabela.MoveNext
  End If
Wend
 
É uma gambi mas funciona...rs
 
Abrazz
TÓPICO EDITADO
 
André
não registrado
ENUNCIADA !
Postada em 09/05/2008 10:31 hs   
Eu fiz esse código que é quase igual ao da rotina localizar que eu fiz e deu certo.Mas deu esse erro" this action was cancelled by an associated object "

Segue o código

Private Sub CmdSalvar_Click()

Dim valcpf As Boolean
Dim marcador As Variant
Dim verifica As String

If TextNome.Text = Empty Then
  MsgBox " DIGITE O NOME ", vbExclamation, " INSERIR REGISTRO "
  TextNome.SetFocus
  Exit Sub
End If
If TextIdade.Text = Empty Then
  MsgBox " DIGITE A IDADE ", vbExclamation, " INSERIR REGISTRO "
  TextIdade.SetFocus
  Exit Sub
End If
If TextCPF.Text = Empty Then
  MsgBox " DIGITE O CPF ", vbExclamation, " INSERIR REGISTRO "
  TextCPF.SetFocus
  Exit Sub
End If
If Len(TextCPF.Text) <> 11 Then
    MsgBox "CPF DEVE TER 11 DÍGITOS!", vbExclamation, "INSERIR REGISTRO"
    TextCPF.SetFocus
    Exit Sub
Else
   valcpf = isCPF(TextCPF.Text)
   If valcpf = False Then
     MsgBox " ESTE CPF É INVÁLIDO!", vbCritical, "INSERIR REGISTRO"
     TextCPF.SetFocus
     Exit Sub
   End If
End If
marcador = Data1.Recordset.Bookmark
verifica = TextCPF.Text
If verifica <> Empty Then
  Data1.Recordset.Seek "=", verifica
  If Data1.Recordset.NoMatch = False Then
    MsgBox " ESTE CPF JÁ ESTÁ CADASTRADO! VERIFIQUE!", vbExclamation, "INSERIR REGISTRO"
    Data1.Recordset.CancelUpdate
    Data1.Recordset.MoveMax
    Data1.Recordset.Bookmark = marcador
    Exit Sub
  End If
  Data1.Recordset.Bookmark = marcador
End If

Data1.UpdateRecord
Data1.Recordset.Bookmark = Data1.Recordset.MaxModified

End Sub
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
Postada em 09/05/2008 10:35 hs            
Ficou Mais fácil
 
Neste trecho inclua
  .....MsgBox " ESTE CPF É INVÁLIDO!", vbCritical, "INSERIR REGISTRO"
     TextCPF.SetFocus
     Exit Sub
   End If
End If
 
Data1.MoveFirs_t
Do While not Data1.Recordset.EOF
if Data1.Field("cpf")=txtCPF.text then
msgbox"CPF já cadastrado!"
exit sub
 
else
 
Data1.UpdateRecord
Data1.Recordset.Bookmark = Data1.Recordset.MaxModified
End Sub
 
End If
 
Data1.Movenext
 
Loop
 
     
Página(s): 1/3      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página