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
|
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
|
|
|
|
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
|
|
|
|
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
|
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
|
|
|