Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Roacutan

[Resolvido] Updade,Delete,Insert no VB

Recommended Posts

Estou precisando de uma ajuda para melhorar os codigos abaixo, pq apos eu adicionar,deletar ou atualizar algum campo gera o erro 3704, mas esta rodando o programa so falta melhorar que eu nao estou conseguindo

Tentei verificar se o cod ja existe aparecer alguma mensagem, mas nao deu certo...

me deem uma ajuda por favor!!

 

 

 

 

Private Sub cdmAtualizar_Click()
 With rs
  .Close
sql = "update func set Nome = '" & txtNome.Text & "' , Cargo = '" & txtcargo.Text & "' where cod = " & txtcod.Text & ""
  .Open sql

End With
End Sub
 

Private Sub cmdAdicionar_Click()
With rs
  .Close
  sql = "INSERT INTO Func (cod, Nome, Cargo) VALUES (' " & txtcod.Text & "', '" & txtNome.Text & " ', '" & txtcargo.Text & "')"
   .Open sql
   MsgBox "Dados Inseridos com sucesso"
  
  
 End With
 
End Sub

Private Sub cmdDeletar_Click()
If txtcod.Text <> "" Then
   With rs
       .Close
        sql = "Delete From Func Where cod=' " & txtcod.Text & "'"
        .Open sql
         MsgBox "Registro deletado com sucesso!"
    End With
 End If
 
End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual é o erro? A desrcição dele.

 

 

Provavelmente é por causa do seu .Close antes de executar os comandos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguém pode me dar uma ajuda para melhorar os codigos abaixo, pq qto eu executo algum deles gera o erro 3704 (operação não permitida quando o objeto está fechado)

Mas esta funcionando o programa

Private Sub anterior_Click()
With rs
   If .BOF And .EOF Then [b]<erro da aqui[/b]
       MsgBox "Não há dados no arquivo ", vbInformation
   Else
       .MovePrevious
       If .BOF Then
          .MoveFirst
          MsgBox "chegamos ao 1º registro"
       Else
        mostra_dados
       End If
    End If
End With
End Sub

Private Sub cdmAtualizar_Click()
 With rs
  .Close
sql = "update func set Nome = '" & txtNome.Text & "' , Cargo = '" & txtcargo.Text & "' where cod = " & txtcod.Text & ""
  .Open sql

End With
End Sub
 

Private Sub cmdAdicionar_Click()
With rs
  .Close
  sql = "INSERT INTO Func (cod, Nome, Cargo) VALUES (' " & txtcod.Text & "', '" & txtNome.Text & " ', '" & txtcargo.Text & "')"
   .Open sql
   MsgBox "Dados Inseridos com sucesso"
  
  
 End With
 
End Sub

Private Sub cmdDeletar_Click()
If txtcod.Text <> "" Then
   With rs
       .Close
        sql = "Delete From Func Where cod=' " & txtcod.Text & "'"
        .Open sql
         MsgBox "Registro deletado com sucesso!"
    End With
 End If
 
End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que executar um SQL antes de verificar se está BOF ou EOF.

 

 

Para os comandos insert, delete e update, vocÊ pode usar o objeto de conexão.

 

 

conex.Execute(<instrução sql aqui>)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você inserir um código que já exista (chave da tabela), vai gerar um erro. Dai você trata esse erro paera mostrar a mensagem que quiser.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz assim deu certo

 

Private Sub cmdAdicionar_Click()
On Error GoTo Trata
With rs
  .Close
  cn.Execute ("INSERT INTO Func (cod, Nome, Cargo) VALUES (' " & txtcod.Text & "', '" & txtNome.Text & " ', '" & txtcargo.Text & "')")
   .Open sql
   mostra_dados
    
 End With
Trata:
Select Case Err.Number
Case -2147217873 'erro ao gravar na base de dados
     MsgBox "Funcionário já cadastrado!"
     rs.Open
     rs.CancelBatch
     rs.MoveFirst
End Select
End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.