AJUDA DELETE,UPDATE, INSERT

ROACUTANIZADO 04/09/2009 23:26:03
#322051
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 <erro da aqui
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
DANIKULL 04/09/2009 23:58:45
#322053
Resposta escolhida
ROACUTANIZADO, boa noite.

Você esta abrindo rs antes de testar as condições de true or false???
ROACUTANIZADO 05/09/2009 10:10:20
#322080
o codigo completo abaixo

Dim sql As String
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset

Private Sub anterior_Click()
With rs
If .BOF And .EOF Then
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

Private Sub cmdlimpa_Click()
txtcod.Text = [Ô][Ô]
txtNome.Text = [Ô][Ô]
txtcargo.Text = [Ô][Ô]
txtcod.SetFocus
With rs
.Close
sql = [Ô]Select cod,nome ,cargo from func[Ô]
.Open sql
mostra_dados
End With
End Sub

Private Sub cmdok_Click()
If txtprocura.Text <> [Ô][Ô] Then
With rs
.Close
sql = [Ô]Select cod, nome , cargo from func Where nome like [ô][Ô] & txtprocura.Text & [Ô]%[ô] ORDER BY nome[Ô]
.Open sql
mostra_dados
End With
End If
End Sub

Private Sub cmdprimeiro_Click()
With rs
If .BOF And .EOF Then
MsgBox [Ô]Não há dados no arquivo [Ô], vbInformation
Else
.MoveFirst
mostra_dados
End If
End With

End Sub

Private Sub cmdproximo_Click()
With rs
If .BOF And .EOF Then
MsgBox [Ô]Não há dados no arquivo [Ô], vbInformation
Else
.MoveNext
If .EOF Then
.MoveLast
MsgBox [Ô]chegamos ao último registro[Ô]
Else
mostra_dados
End If

End If
End With
End Sub

Private Sub cmdSair_Click()
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End
End Sub

Private Sub cmdultimo_Click()
With rs
If .BOF And .EOF Then
MsgBox [Ô]Não há dados para exibir ! [Ô]
Else
.MoveLast
mostra_dados
End If
End With
End Sub

Private Sub Form_Load()
cn.Provider = [Ô]SQLOLEDB[Ô]
cn.Properties([Ô]Data Source[Ô]).Value = [Ô]gustavo[Ô]
cn.Properties([Ô]Initial Catalog[Ô]).Value = [Ô]Funcionarios[Ô]
cn.Properties([Ô]User ID[Ô]).Value = [Ô]gustavo[Ô]
cn.Properties([Ô]Password[Ô]).Value = [Ô]123456[Ô]
cn.Open
sql = [Ô]Select cod, nome, cargo from func[Ô]

rs.CursorLocation = adUseClient
rs.Open sql, cn, adOpenForwardOnly, adLockPessimistic
mostra_dados


End Sub

Private Sub mostra_dados()

With rs
If .BOF And .EOF Then
MsgBox [Ô]Não há dados para exibir ! [Ô]
Else
txtcod = .Fields([Ô]Cod[Ô])
txtNome = .Fields([Ô]Nome[Ô])
txtcargo = .Fields([Ô]Cargo[Ô])
End If
End With

End Sub

DANIKULL 05/09/2009 14:04:51
#322097
ROACUTANIZADO, boa tarde.

Pega este trecho do Form_Load()

Citação:



...
cn.Open
sql = [Ô]Select cod, nome, cargo from func[Ô]

[txt-color=#b40404]Set rs = New ADODB.Recordset[/txt-color]

rs.CursorLocation = adUseClient
rs.Open sql, cn, adOpenForwardOnly, adLockPessimistic
mostra_dados
...



e acrescente a linha em destaque na mesma posição e veja se vai funcionar....

Qualquer coisa poste novamente, ok???


ROACUTANIZADO 07/09/2009 09:37:20
#322199
Deu certooooooo mto obrigado!
Tópico encerrado , respostas não são mais permitidas