ERRO 3075 - OPERACAO NAO PERMITIDA
Estou tendo este erro em um projeto meu..
O estranho é que só porque esqueci de dar um close em uma rotina.. ao salvar deu este erro..
rstconsulta.Open [Ô]select count(*) from Compromisso WHERE conta_nomeuser =[Ô] & fConvValorSQL(txtNomeUser.Text, E_Texto), cnnBanco
If rstconsulta.Fields(0) > 0 Then
intresp = MsgBox([Ô]Confirma o Pagamento da conta :[Ô] & TxtNomeConta.Text & [Ô]?[Ô], vbQuestion + vbYesNoCancel, [Ô]Atenção[Ô])
If intresp = vbYes Then
Pagamento = [Ô]1[Ô]
End If
End If
rstconsulta.Close
Neste codigo.. esqueci da ultima linha..
Agora toda vez que tendo executar o programa.. da esta mensagem de erro..
Ja tentei criar rotina para corrigir e dar um close.. mas então.. ele da pau em todas rotina Open.. close..
'Tenho um Backup do bando de dados Access.. e quando troco.. e tento executar.. ele executa normal..
Porque este erro? Pelo visto deu um pau no banco de dados.. e não no programa..
Como faço para corrigir o banco de dados ?
Obrigado e até +
O estranho é que só porque esqueci de dar um close em uma rotina.. ao salvar deu este erro..
rstconsulta.Open [Ô]select count(*) from Compromisso WHERE conta_nomeuser =[Ô] & fConvValorSQL(txtNomeUser.Text, E_Texto), cnnBanco
If rstconsulta.Fields(0) > 0 Then
intresp = MsgBox([Ô]Confirma o Pagamento da conta :[Ô] & TxtNomeConta.Text & [Ô]?[Ô], vbQuestion + vbYesNoCancel, [Ô]Atenção[Ô])
If intresp = vbYes Then
Pagamento = [Ô]1[Ô]
End If
End If
rstconsulta.Close
Neste codigo.. esqueci da ultima linha..
Agora toda vez que tendo executar o programa.. da esta mensagem de erro..
Ja tentei criar rotina para corrigir e dar um close.. mas então.. ele da pau em todas rotina Open.. close..
'Tenho um Backup do bando de dados Access.. e quando troco.. e tento executar.. ele executa normal..
Porque este erro? Pelo visto deu um pau no banco de dados.. e não no programa..
Como faço para corrigir o banco de dados ?
Obrigado e até +
acho é porque sua recordset nao está setada..
veja se não é isso
[txt-color=#e80000][txt-size=5]Set rstconsulta = New ADODB.Recordset[/txt-size][/txt-color]
rstconsulta.Open [Ô]select count(*) from Compromisso WHERE conta_nomeuser =[Ô] & fConvValorSQL(txtNomeUser.Text, E_Texto), cnnBanco
If rstconsulta.Fields(0) > 0 Then
intresp = MsgBox([Ô]Confirma o Pagamento da conta :[Ô] & TxtNomeConta.Text & [Ô]?[Ô], vbQuestion + vbYesNoCancel, [Ô]Atenção[Ô])
If intresp = vbYes Then
Pagamento = [Ô]1[Ô]
End If
End If
rstconsulta.Close
e feche assim
rstconsulta.Close
Set rstconsulta = Nothing
rstconsulta.Close
Set rstconsulta = Nothing
Pessoal.. este é o meu codigo
Public Function fSalvarDados() As Boolean
Dim rstconsulta As New ADODB.Recordset
Dim vResp, SQL As String
If txtUsuario.Caption = [Ô][Ô] Then
MsgBox [Ô]Alteração não permitida[Ô]
Exit Function
End If
txtNomeUser.Text = [Ô][Ô]
If txtNomeUser.Text = [Ô][Ô] Then
txtNomeUser.Text = (txtUsuario.Caption + mskVencimento + txtValor + TxtNomeConta.Text + txtUsuario)
End If
If Me.txtAuxilia.Text <> [Ô]ContaPaga[Ô] Then
If fDadosValidos Then
[ô]Inicio da rotina que tira os espaços
TxtNomeConta.Text = Trim(TxtNomeConta.Text)
txtValor.Text = Trim(txtValor)
txtObs.Text = Trim(txtObs)
[ô]Fim da rotina que tira os espaços
If txtAuxilia.Text <> [Ô]ContaPaga[Ô] Then
[ô]verifica se já existe um cliente cadastrado no sistema com este nome
rstconsulta.Open [Ô]select count(*) from Compromisso WHERE conta_nomeuser =[Ô] & fConvValorSQL(txtNomeUser.Text, E_Texto), cnnBanco
[ô]conta se ja existe a Distribuidora
If rstconsulta.Fields(0) > 0 Then
MsgBox [Ô]Já existe um conta com esse nome[Ô], vbInformation, [Ô]Atenção[Ô]
Call sGravaRepetido
End If
[ô]Se ele nao encontrar o registro entao chama para gravar
If rstconsulta.Fields(0) = 0 Then
[ô]chama para gravar
Call sGravaConta
End If
End If
End If
End If
If txtAuxilia.Text = [Ô]ContaPaga[Ô] Then
rstconsulta.Open [Ô]select count(*) from Compromisso WHERE conta_nomeuser =[Ô] & fConvValorSQL(txtNomeUser.Text, E_Texto), cnnBanco
If rstconsulta.Fields(0) > 0 Then
intresp = MsgBox([Ô]Confirma o Pagamento da conta :[Ô] & TxtNomeConta.Text & [Ô]?[Ô], vbQuestion + vbYesNoCancel, [Ô]Atenção[Ô])
If intresp = vbYes Then
Pagamento = [Ô]1[Ô]
End If
End If
rstconsulta.Close
Set rstconsulta = Nothing
If intresp = vbYes Then
Call sGravaHistorico
End If
End If
End Function
Agora fora isto... quando o programa vai fazer a conexão com o bando de dados da este erro.. 3075..
Se eu trocar o banco de dados por uma outra copia.. ele passa.. funciona direito..
Public Function fSalvarDados() As Boolean
Dim rstconsulta As New ADODB.Recordset
Dim vResp, SQL As String
If txtUsuario.Caption = [Ô][Ô] Then
MsgBox [Ô]Alteração não permitida[Ô]
Exit Function
End If
txtNomeUser.Text = [Ô][Ô]
If txtNomeUser.Text = [Ô][Ô] Then
txtNomeUser.Text = (txtUsuario.Caption + mskVencimento + txtValor + TxtNomeConta.Text + txtUsuario)
End If
If Me.txtAuxilia.Text <> [Ô]ContaPaga[Ô] Then
If fDadosValidos Then
[ô]Inicio da rotina que tira os espaços
TxtNomeConta.Text = Trim(TxtNomeConta.Text)
txtValor.Text = Trim(txtValor)
txtObs.Text = Trim(txtObs)
[ô]Fim da rotina que tira os espaços
If txtAuxilia.Text <> [Ô]ContaPaga[Ô] Then
[ô]verifica se já existe um cliente cadastrado no sistema com este nome
rstconsulta.Open [Ô]select count(*) from Compromisso WHERE conta_nomeuser =[Ô] & fConvValorSQL(txtNomeUser.Text, E_Texto), cnnBanco
[ô]conta se ja existe a Distribuidora
If rstconsulta.Fields(0) > 0 Then
MsgBox [Ô]Já existe um conta com esse nome[Ô], vbInformation, [Ô]Atenção[Ô]
Call sGravaRepetido
End If
[ô]Se ele nao encontrar o registro entao chama para gravar
If rstconsulta.Fields(0) = 0 Then
[ô]chama para gravar
Call sGravaConta
End If
End If
End If
End If
If txtAuxilia.Text = [Ô]ContaPaga[Ô] Then
rstconsulta.Open [Ô]select count(*) from Compromisso WHERE conta_nomeuser =[Ô] & fConvValorSQL(txtNomeUser.Text, E_Texto), cnnBanco
If rstconsulta.Fields(0) > 0 Then
intresp = MsgBox([Ô]Confirma o Pagamento da conta :[Ô] & TxtNomeConta.Text & [Ô]?[Ô], vbQuestion + vbYesNoCancel, [Ô]Atenção[Ô])
If intresp = vbYes Then
Pagamento = [Ô]1[Ô]
End If
End If
rstconsulta.Close
Set rstconsulta = Nothing
If intresp = vbYes Then
Call sGravaHistorico
End If
End If
End Function
Agora fora isto... quando o programa vai fazer a conexão com o bando de dados da este erro.. 3075..
Se eu trocar o banco de dados por uma outra copia.. ele passa.. funciona direito..
Creio que o problema pode ser outro.. sem nada a ver com o codigo..
Pois ao trocar o banco de dados.. ele funciona normal.. acho que ouve um corrompimento no banco de dados do Access e agora ele fica como se tivesse aberto.. ????
Nunca vi este erro..
Dentro dele tem umas tabelas..
Cliente. Compromisso..
Ja recriei novamente.. e o erro continua..
E o estranho que copiei todas as tabelas da outra que esta funcioando..
Minha curiosidade é entender o que aconteceu com o banco de dados..
Uso o Access do Office XP..
Pois ao trocar o banco de dados.. ele funciona normal.. acho que ouve um corrompimento no banco de dados do Access e agora ele fica como se tivesse aberto.. ????
Nunca vi este erro..
Dentro dele tem umas tabelas..
Cliente. Compromisso..
Ja recriei novamente.. e o erro continua..
E o estranho que copiei todas as tabelas da outra que esta funcioando..
Minha curiosidade é entender o que aconteceu com o banco de dados..
Uso o Access do Office XP..
Tenta assim amigo
Public Function fSalvarDados() As Boolean
Dim rstconsulta As New ADODB.Recordset
Dim vResp, SQL As String
If txtUsuario.Caption = [Ô][Ô] Then
MsgBox [Ô]Alteração não permitida[Ô]
Exit Function
End If
txtNomeUser.Text = [Ô][Ô]
If txtNomeUser.Text = [Ô][Ô] Then
txtNomeUser.Text = (txtUsuario.Caption + mskVencimento + txtValor + TxtNomeConta.Text + txtUsuario)
End If
If Me.txtAuxilia.Text <> [Ô]ContaPaga[Ô] Then
If fDadosValidos Then
[ô]Inicio da rotina que tira os espaços
TxtNomeConta.Text = Trim(TxtNomeConta.Text)
txtValor.Text = Trim(txtValor)
txtObs.Text = Trim(txtObs)
[ô]Fim da rotina que tira os espaços
If txtAuxilia.Text <> [Ô]ContaPaga[Ô] Then
[ô]verifica se já existe um cliente cadastrado no sistema com este nome
cnnBanco
rstconsulta.Open [Ô]select count(*) from Compromisso WHERE conta_nomeuser =[Ô] & fConvValorSQL(txtNomeUser.Text, E_Texto),
[ô]conta se ja existe a Distribuidora
If rstconsulta.Fields(0) > 0 Then
MsgBox [Ô]Já existe um conta com esse nome[Ô], vbInformation, [Ô]Atenção[Ô]
Call sGravaRepetido
rstconsulta.close
End If
[ô]Se ele nao encontrar o registro entao chama para gravar
If rstconsulta.Fields(0) = 0 Then
[ô]chama para gravar
Call sGravaConta
rstconsulta.close
End If
End If
End If
End If
If txtAuxilia.Text = [Ô]ContaPaga[Ô] Then
cnnBanco
rstconsulta.Open [Ô]select count(*) from Compromisso WHERE conta_nomeuser =[Ô] & fConvValorSQL(txtNomeUser.Text, E_Texto),
If rstconsulta.Fields(0) > 0 Then
intresp = MsgBox([Ô]Confirma o Pagamento da conta :[Ô] & TxtNomeConta.Text & [Ô]?[Ô], vbQuestion + vbYesNoCancel, [Ô]Atenção[Ô])
If intresp = vbYes Then
Pagamento = [Ô]1[Ô]
rstconsulta.close
End If
End If
If intresp = vbYes Then
Call sGravaHistorico
rstconsulta.Close
End If
End If
End Function
Public Function fSalvarDados() As Boolean
Dim rstconsulta As New ADODB.Recordset
Dim vResp, SQL As String
If txtUsuario.Caption = [Ô][Ô] Then
MsgBox [Ô]Alteração não permitida[Ô]
Exit Function
End If
txtNomeUser.Text = [Ô][Ô]
If txtNomeUser.Text = [Ô][Ô] Then
txtNomeUser.Text = (txtUsuario.Caption + mskVencimento + txtValor + TxtNomeConta.Text + txtUsuario)
End If
If Me.txtAuxilia.Text <> [Ô]ContaPaga[Ô] Then
If fDadosValidos Then
[ô]Inicio da rotina que tira os espaços
TxtNomeConta.Text = Trim(TxtNomeConta.Text)
txtValor.Text = Trim(txtValor)
txtObs.Text = Trim(txtObs)
[ô]Fim da rotina que tira os espaços
If txtAuxilia.Text <> [Ô]ContaPaga[Ô] Then
[ô]verifica se já existe um cliente cadastrado no sistema com este nome
cnnBanco
rstconsulta.Open [Ô]select count(*) from Compromisso WHERE conta_nomeuser =[Ô] & fConvValorSQL(txtNomeUser.Text, E_Texto),
[ô]conta se ja existe a Distribuidora
If rstconsulta.Fields(0) > 0 Then
MsgBox [Ô]Já existe um conta com esse nome[Ô], vbInformation, [Ô]Atenção[Ô]
Call sGravaRepetido
rstconsulta.close
End If
[ô]Se ele nao encontrar o registro entao chama para gravar
If rstconsulta.Fields(0) = 0 Then
[ô]chama para gravar
Call sGravaConta
rstconsulta.close
End If
End If
End If
End If
If txtAuxilia.Text = [Ô]ContaPaga[Ô] Then
cnnBanco
rstconsulta.Open [Ô]select count(*) from Compromisso WHERE conta_nomeuser =[Ô] & fConvValorSQL(txtNomeUser.Text, E_Texto),
If rstconsulta.Fields(0) > 0 Then
intresp = MsgBox([Ô]Confirma o Pagamento da conta :[Ô] & TxtNomeConta.Text & [Ô]?[Ô], vbQuestion + vbYesNoCancel, [Ô]Atenção[Ô])
If intresp = vbYes Then
Pagamento = [Ô]1[Ô]
rstconsulta.close
End If
End If
If intresp = vbYes Then
Call sGravaHistorico
rstconsulta.Close
End If
End If
End Function
Luiz..
Obrigado pelo codigo..
Mas entretando o problema no projeto esta no codigo.. e sim no banco de dados.. que ficou corrompido..
Embora ja testei novamente o codigo antigo.. e um outro banco de dados do access. (Ainda bem que eu tinha uma copia de segurança do banco no meu pen drive )..
O codigo acessa normal.. mas se eu volto a botar o banco antigo.. volta a dar problema..
E olha que ja copiei a tabela do outro banco que funciona.. substitui pelo que esta dando problema.. e mesmo assim o banco continua a dizer que esta aberto..
Obrigado pelo codigo..
Mas entretando o problema no projeto esta no codigo.. e sim no banco de dados.. que ficou corrompido..
Embora ja testei novamente o codigo antigo.. e um outro banco de dados do access. (Ainda bem que eu tinha uma copia de segurança do banco no meu pen drive )..
O codigo acessa normal.. mas se eu volto a botar o banco antigo.. volta a dar problema..
E olha que ja copiei a tabela do outro banco que funciona.. substitui pelo que esta dando problema.. e mesmo assim o banco continua a dizer que esta aberto..
Tópico encerrado , respostas não são mais permitidas