ERRO AO INCLUIR

GESSINGER 06/06/2011 13:30:01
#375964
Operação não permitida quando o objeto esta fechado

[ô] alguem pode ajudar ai
NIKYTS 06/06/2011 14:20:08
#375970
Axo k já está,..estaves a abrir e a fechar a conexão constantemente. abre apenas no form load aí é brincar com os rs e fecha a conexão apenas quando terminares
XXXANGELSXXX 06/06/2011 14:21:14
#375971
eset erro é quando o banco nao esta aberto
MSMJUDAS 06/06/2011 14:24:23
#375972
Alguns erros que eu ví:

1) Vc abre e fecha a conexão com o banco duas vezes no Form_Load.

2) Ao incluir dá erro pois além de não ter o recordset aberto a conexão tbm está fechada.

Solução:

1) Deixe a conexão com o banco aberta logo no Form_Load, só abra e feche os recordsets. Feche a conexão com o banco somente ao sair da tela.

2) No incluir, abra o recordset da tabela ANTES do Rs.AddNew, exemplo:

Rs.Open ........
Rs.AddNew
Rs([Ô]CAMPO[Ô]) = [Ô]...[Ô]
Rs.Update
Rs.Close: Set Rs = Nothing
GESSINGER 06/06/2011 17:57:15
#376002
não consegui eu deixei a conexão aberta somente uma vez agora e mesmo assim não ta gravando
FILMAN 06/06/2011 19:01:32
#376007
Coloque isso no FORM LOAD
Private Sub Form_Load()
conex.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path + [Ô]Dados.mdb[Ô] & [Ô];Persist Security Info=False[Ô]
rs.Open [Ô]Select * from Cad_Cliente order by Nome[Ô], conex, adOpenKeyset, adLockOptimistic

[ô]carregando as txts
lblCod.Caption = rs!Codigo
txtNome.Text = rs!Nome
mskTel.Text = rs!Telefone
mskCel.Text = rs!Celular
txtEnd.Text = rs!Endereço
txtCidade.Text = rs!Cidade
txtBairro.Text = rs!Bairro
txtCep.Text = rs!Cep
mskCPF.Text = rs!CPF
mskRG.Text = rs!RG
txtObs.Text = rs!Obs

[ô]carrga a listview
Dim clmX As ColumnHeader

Set clmX = ListView1.ColumnHeaders.Add(, , [Ô]Codigo[Ô])
clmX.Width = [Ô]1000[Ô]
Set clmX = ListView1.ColumnHeaders.Add(, , [Ô]Nome[Ô])
clmX.Width = [Ô]3500[Ô]
Set clmX = ListView1.ColumnHeaders.Add(, , [Ô]Telefone[Ô])
clmX.Width = [Ô]2000[Ô]
Set clmX = ListView1.ColumnHeaders.Add(, , [Ô]Celular[Ô])
clmX.Width = [Ô]2000[Ô]

[ô]ListView1.ListItems.Clear

Do Until rs.EOF
Set NewItem = ListView1.ListItems.Add(, , rs([Ô]Codigo[Ô]))
NewItem.SubItems(1) = [Ô][Ô] & rs([Ô]nome[Ô])
NewItem.SubItems(2) = [Ô][Ô] & rs([Ô]telefone[Ô])
NewItem.SubItems(3) = [Ô][Ô] & rs([Ô]Celular[Ô])
rs.MoveNext
Loop
conex.Close

End Sub



Coloque isso no BOTAO SAIR
Private Sub cmdSair_Click()
if rs.state > 0 then rs.close
Conex.close
set Conex = nothing
set rs = nothing
Unload me
end
End Sub


Lembrando que nao precisa fechar a conexao principal
zere a recordset e utilize ela para outro processo
Tenta assim ve se funciona
GESSINGER 06/06/2011 23:52:58
#376025
continua dando esse erro
Operação não permitida quando o objeto esta fechado

esse erro aparede ao clicar em Incluir e tb no bt sair
ROBIU 07/06/2011 08:28:36
#376031
Resposta escolhida
Dei uma uma verificada no seu projeto e fiz alguns ajustes.
KIKO.WIZZ 07/06/2011 08:52:53
#376037
Você precisa abrir a conexao e o recordset, se não, não vai funcionar.
Detalhe também para o Código do Cliente, vc está tentando incluir duplicado. Como ocampo no banco está com numeração automática, você não precisa informar no momento da gravação, pois ele vai pegar o próximo numero disponível.

Segue a rotina com correção:

[txt-color=#0000f0]Private Sub cmdIncluir_Click()
conex.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Wilton\Desktop\Pegasus Live\Dados.mdb;Persist Security Info=False[Ô]

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset


rs.Open [Ô]Select * from Cad_Cliente order by Nome[Ô], conex, adOpenKeyset, adLockOptimistic


rs.AddNew
[ô]rs!Codigo = lblCod.Caption + 1 <<<<<< Essa linha você não precisará informar!!!
rs!Nome = txtNome.Text
rs!Telefone = mskTel.Text
rs!Celular = mskCel.Text
rs!Endereço = txtEnd.Text
rs!Cidade = txtCidade.Text
rs!Bairro = txtBairro.Text
rs!Cep = txtCep.Text
[ô]rs!UF = txtUF.Text
rs!CPF = mskCPF.Text
rs!RG = mskRG.Text
[ô]rs!Cadastro = txtCelular.Text
rs!Obs = txtObs.Text
rs.Update

conex.Close

MsgBox [Ô]Registro incluido com sucesso...[Ô], vbInformation, [Ô]Aviso[Ô]
End Sub[/txt-color]
Tópico encerrado , respostas não são mais permitidas