OPERACAO NAO PERMETIDA QUNDO O OBJETO ESTA FECHADO

FRAZAO 26/07/2013 12:36:02
#426568
Bom dia,estou com problema no meu cadastro de clientes,quando eu tento edtar algo tipo limite de Creditos,
ele dar um erro mais ou menos assim...[Ô].operaçao nao permetida quando o objeto esta fechado[Ô]
o erro esta nesta parte do Codigo....[Ô]cn.RollbackTrans[Ô]


o que esta faltando aqui sera se foi algo que esqueci de faser...

obrigada aguardo respostas.....
SINKERTEC 26/07/2013 13:18:37
#426571


Antes deste processo, a conexão foi aberta?

Teve tb o BeginTrans?
FRAZAO 26/07/2013 17:03:06
#426590
Citação:

:


Antes deste processo, a conexão foi aberta?

Teve tb o BeginTrans?

sim a conexao foi aberta
a parte onde esta dando erro e esta ......Private Sub cmdGravar_Click()

On Error GoTo labelErro

CriticaCampos

If vFlagCriticaCampos = False Then

Exit Sub

End If

AbreConexao

If vFlagAltera = True Then

atxtCodigo.Text = cboClientes.BoundText

atxtLimiteDisponivel.Text = FormatarDec(CCur(atxtLimiteCredito.Text) - CCur(TotalDevedor), 2)

Else

strSQL = [Ô]SELECT *FROM CamposChave[Ô]

Dim rs As New ADODB.Recordset

With rs

.CursorType = adOpenKeyset
.CursorLocation = adUseServer
.Open strSQL, cn, adOpenKeyset, adLockOptimistic

If .EOF Then

.Close
Set rs = Nothing
CloseConexao
MsgBox [Ô]Campo chave não localizado nos registros do sistema[Ô], vbCritical, [Ô]Orion[Ô]
Exit Sub

Else

atxtCodigo.Text = .Fields([Ô]Cliente[Ô]) + 1

End If

.Close
Set rs = Nothing

End With

End If

cn.BeginTrans

strSQL = [Ô]DELETE Clientes.Codigo [Ô] & _
[Ô]FROM Clientes WHERE (((Clientes.Codigo)=[Ô] & atxtCodigo.Text & [Ô]));[Ô]

cn.Execute (strSQL)

strSQL = [Ô]DELETE Limites.Codigo [Ô] & _
[Ô]FROM Limites WHERE (((Limites.CodigoCliente)=[Ô] & atxtCodigo.Text & [Ô]));[Ô]

cn.Execute (strSQL)

strSQL = [Ô]INSERT INTO Clientes([Ô] & _
[Ô]Codigo,[Ô] & _
[Ô]Nome,[Ô] & _
[Ô]TipoDoc,[Ô] & _
[Ô]NumeroDoc,[Ô] & _
[Ô]DtCadastro,[Ô] & _
[Ô]DtUltimoFat,[Ô] & _
[Ô]DtNascimento,[Ô] & _
[Ô]Status,[Ô] & _
[Ô]Obs,[Ô] & _
[Ô]CEP,[Ô] & _
[Ô]TipoVia,[Ô] & _
[Ô]Logradouro,[Ô]

strSQL = strSQL & _
[Ô]Municipio,[Ô] & _
[Ô]Numero,[Ô] & _
[Ô]Bairro,[Ô] & _
[Ô]Complemento,[Ô] & _
[Ô]UF,[Ô] & _
[Ô]Pais,[Ô] & _
[Ô]Telefone1,[Ô] & _
[Ô]Telefone2,[Ô] & _
[Ô]Fax,[Ô] & _
[Ô]Site,[Ô] & _
[Ô]Email,[Ô] & _
[Ô]Contato)VALUES([Ô] & _
[Ô][ô][Ô] & Trim(atxtCodigo.Text) & [Ô][ô],[Ô] & _
[Ô][ô][Ô] & Trim(atxtCliente.Text) & [Ô][ô],[Ô]

strSQL = strSQL & _
IIf(cboDoc.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & cboDoc.Text & [Ô][ô],[Ô]) & _
IIf(atxtNumeroDoc.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & LimparNumero(Trim(atxtNumeroDoc.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtDtCadastro.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & Trim(atxtDtCadastro.Text) & [Ô][ô],[Ô]) & _
IIf(atxtDtUltimoOS.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & Trim(atxtDtUltimoOS.Text) & [Ô][ô],[Ô]) & _
IIf(atxtDtNascimento.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & Trim(atxtDtNascimento.Text) & [Ô][ô],[Ô]) & _
IIf(cboAtivo.Text = [Ô]SIM[Ô], [Ô]True,[Ô], [Ô]False,[Ô]) & _
IIf(atxtObservacao.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtObservacao.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtCep.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & Trim(atxtCep.Text) & [Ô][ô],[Ô]) & _
IIf(cboVia.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & cboVia.Text & [Ô][ô],[Ô]) & _
IIf(atxtLogradouro.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtLogradouro.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtMunicipio.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtMunicipio.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtNumero.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtNumero.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtBairro.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtBairro.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtComplemento.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtComplemento.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtUF.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtUF.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtPais.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtPais.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtTelefone1.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & Trim(atxtTelefone1.Text) & [Ô][ô],[Ô]) & _
IIf(atxtTelefone2.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & Trim(atxtTelefone2.Text) & [Ô][ô],[Ô]) & _
IIf(atxtFax.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & Trim(atxtFax.Text) & [Ô][ô],[Ô]) & _
IIf(atxtSite.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtSite.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtEmail.Text = [Ô][Ô], [Ô]Null,[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtEmail.Text)) & [Ô][ô],[Ô]) & _
IIf(atxtContato.Text = [Ô][Ô], [Ô]Null)[Ô], [Ô][ô][Ô] & RemoveApostrofe(Trim(atxtContato.Text)) & [Ô][ô])[Ô])

cn.Execute (strSQL)

strSQL = [Ô]INSERT INTO Limites([Ô] & _
[Ô]CodigoCliente,[Ô] & _
[Ô]LimiteCredito,[Ô] & _
[Ô]LimiteDisponivel,[Ô] & _
[Ô]SenhaCompra,[Ô] & _
[Ô]CreditoBloqueado[Ô] & _
[Ô])VALUES([Ô]

strSQL = strSQL & _
[Ô][ô][Ô] & Trim(atxtCodigo.Text) & [Ô][ô],[Ô] & _
IIf(atxtLimiteCredito.Text = [Ô][Ô], [Ô][ô]0,00[ô],[Ô], [Ô][ô][Ô] & Trim(atxtLimiteCredito.Text)) & [Ô][ô],[Ô] & _
IIf(atxtLimiteDisponivel.Text = [Ô][Ô], [Ô][ô]0,00[ô],[Ô], [Ô][ô][Ô] & Trim(atxtLimiteDisponivel.Text)) & [Ô][ô],[Ô] & _
IIf(atxtSenhaCompra1.Text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & Trim(atxtSenhaCompra1.Text)) & [Ô][ô],[Ô] & _
IIf(chkCreditoBloqueado.Value = True, [Ô]True)[Ô], [Ô]False)[Ô])

cn.Execute (strSQL)

If vFlagAltera = False Then

strSQL = [Ô]UPDATE CamposChave SET Cliente=[ô][Ô] & atxtCodigo.Text & [Ô][ô][Ô]

cn.Execute (strSQL)

End If

cn.CommitTrans

CloseConexao

MsgBox [Ô]Processo de gravação concluído com sucesso[Ô], vbInformation, [Ô]ORION[Ô]

CarregaADOclientes

BloqueiaCampos (True)

vFlagAltera = False

cboClientes.Visible = True
atxtCliente.Visible = False
RotBotoes True, False, False, False, False
cboClientes.Text = [Ô][Ô]
cboClientes.SetFocus
LimpaTudo

Exit Sub

labelErro:

GlobalErros [Ô]GRAVAÇÃO DO CLIENTE[Ô], Me.Name, True, True

If vRepetirErro = True Then

Resume

End If

If vIgnorarErro = True Then

Resume Next

End If

If vRepetirErro = False And vIgnorarErro = False Then

[txt-color=#e80000]cn.RollbackTrans[/txt-color]

End If

End Sub


a parte destacada de vermelho é que esta dando erro....
NILSONTRES 26/07/2013 18:39:30
#426595
Provavelmente esse erro esteja acontecendo antes do BeginTrans, por isso não aceita o RollbackTrans
FRAZAO 26/07/2013 19:24:27
#426597
Citação:

:
Provavelmente esse erro esteja acontecendo antes do BeginTrans, por isso não aceita o RollbackTrans


mas neste caso o que fazer chefe,ja fis umas tentativas mas todas sem exito.....
NILSONTRES 26/07/2013 21:50:33
#426599
O que vc precisa fazer primeiro é descobrir qual o erro, e onde ele acontece, pois esta jogando para o rollback.
FRAZAO 26/07/2013 23:51:04
#426600
Cara é este o problema eu nao consigo e nem fasso ideia de onde esta vindo este erro.ja tentei de varias formas mas nada teve exito.e o pior é que é somente nesta parte do codigo.so na hora em que vou faser uma alteração no cadastro do cliente.

se alguem sabe de onde devo partir de uma forssa por gentileza eu agradeço.....Obrigada.....

MARCELO.TREZE 27/07/2013 10:43:55
#426603
Resposta escolhida
Olha o que eu percebi é o seguinte: a linha em que ocorrre o erro está dentro de um tratamento de erro ( On Error Goto ), então o problema é o seguinte seu código possui um erro que o On Error detecta antes de ser aberta a conexão o que gera o seu problema.

faça o seguinte comente ou retire o on error goto e faça o processo, desta vez irá ocorrer um erro em outra parte do código, então diga pra gente onde ocorrerá o erro desta vez.
FRAZAO 27/07/2013 23:22:09
#426612
Ola galera fis o que pediram,desta vez o erro vem na linha.......[Ô]cn.BeginTrans[Ô]
FRAZAO 01/08/2013 20:52:56
#426913
Gente Obrigada eu descobri onde o erro estava realmente acontecendo,era em um modulo que eu fechei a conexão antes.....
mas obrigada pela forsa,precisando estamos ai para ajudar...Falowww
Tópico encerrado , respostas não são mais permitidas