OPERACAO NAO PERMETIDA QUNDO O OBJETO ESTA FECHADO
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.....
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.....
Antes deste processo, a conexão foi aberta?
Teve tb o BeginTrans?
Citação:sim a conexao foi aberta:
Antes deste processo, a conexão foi aberta?
Teve tb o BeginTrans?
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....
Provavelmente esse erro esteja acontecendo antes do BeginTrans, por isso não aceita o RollbackTrans
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.....
O que vc precisa fazer primeiro é descobrir qual o erro, e onde ele acontece, pois esta jogando para o rollback.
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.....
se alguem sabe de onde devo partir de uma forssa por gentileza eu agradeço.....Obrigada.....
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.
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.
Ola galera fis o que pediram,desta vez o erro vem na linha.......[Ô]cn.BeginTrans[Ô]
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
mas obrigada pela forsa,precisando estamos ai para ajudar...Falowww
Tópico encerrado , respostas não são mais permitidas