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

Problemas Com O Addnew


ppgsalomao

Pergunta

Gente,

Estou com o seguinte problema:

Em um form eu tenho um CommandButton com o Caption = Novo e o Name = cmdNovo !

Codificado nele está o seguinte código:

Private Sub cmdNovo_Click()
    With frmGravar
        .Caption = "Gravar novo Membro"
        .adDados.Recordset.AddNew
        .Show
    End With
    Unload Me
End Sub
Aí no form frmGravar eu tenho o ADO Data Control adDados que acessa uma base de dados que eu configurei ! Até aí tudo bem ! Só que eu vinculei os TextBox ao ADO DC atravéz das propriedades DataSource e DataField ... logo eu preciso dar o AddNew para que os campos se zerem e eu consiga inserir um novo registro ! O problema é: Depois que ele preenche as informações e clica em gravar, que é um CommandButton de Caption = Gravar e Name = cmdGravar, que está codificado da seguinte forma:
Private Sub cmdGravar_Click()
    If Trim(Me.txtBairro.Text) = "" Then
        MsgBox "O Bairro precisa ser digitado", vbExclamation, "Erro"
        Exit Sub
    ElseIf Not Trim(Me.txtRegistro.Text) = "" Then
        If Not IsNumeric(Me.txtRegistro.Text) Then
            MsgBox "O registro precisa ser numérico", vbExclamation, "Erro"
            Exit Sub
        Else
            adDados.Recordset.Find "registro = " & txtRegistro.Text
            If Not adDados.Recordset.EOF Then
                MsgBox "O registro digitado já está cadastrado", vbExclamation, "Erro"
                Exit Sub
            End If
        End If
    ElseIf Trim(Me.txtReligião.Text) = "" Then
        MsgBox "A religião precisa ser digitada", vbExclamation, "Erro"
        Exit Sub
    ElseIf Trim(Me.txtTurno.Text) = "" Then
        MsgBox "O Turno de Estudo do jovem precisa ser digitado", vbExclamation, "Erro"
        Exit Sub
    Else
        adDados.Recordset.Update
        frmPrincipal.adDados.Refresh
        frmPrincipal.adDados.Recordset.MoveLast
        frmPrincipal.Show
        Unload Me
    End If
End Sub
Ele faz a verificação e no caso de ter algo incompatível, ele retorna a mensagem e teoricamente volta para a edição ! Só que se eu clico em cancelar, que é um botão que está codificado da seguinte forma:
Private Sub cmdCancelar_Click()
    frmPrincipal.adDados.Refresh
    frmPrincipal.Show
    Unload Me
End Sub

ou fecho o form, ele adiciona o registro mesmo que não tenha passado na verificação !

Como resolvo isso ??

Obrigado desde já !

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Veja que você está usando o mesmo Recordset para buscar na linha...

adDados.Recordset.Find "registro = " & txtRegistro.Text

... sendo que antes disso você fez um AddNew. Quando você faz um AddNew, deve segui-lo de um Update ou de um CancelUpdate. Qualquer movimentação do ponteiro (Move* ou Find) faz com que o registro seja gravado.

Abraços,

Graymalkin

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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...