AJUDA DELETE,UPDATE, INSERT
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
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
ROACUTANIZADO, boa noite.
Você esta abrindo rs antes de testar as condições de true or false???
Você esta abrindo rs antes de testar as condições de true or false???
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
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
ROACUTANIZADO, boa tarde.
Pega este trecho do Form_Load()
e acrescente a linha em destaque na mesma posição e veja se vai funcionar....
Qualquer coisa poste novamente, ok???
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???
Deu certooooooo mto obrigado!
Tópico encerrado , respostas não são mais permitidas