Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lucas ZM

Erro - Objeto aberto (3705)

Recommended Posts

Olá galera, primeiro quero parabenizar à todos que contribuem para manter esse forúm tão bom e rico em conteúdo. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Agora, o problema: eu baixei esse programa (cadastro de clientes) do site do macoratti (http://www.macoratti.net/vb_fbd1.htm), porém não está completo. Eu tentei fazer com que um registro fosse atualizado, mas não dá certo:

 

"erro '3705' - operação não permitida quando o objeto está aberto"

 

e o debug apontou para a linha de update do bd:

 

Tabela.Open "Update Empresas set Tipo= '" & txt00.Text & "',Codigo= '" & txt01.Text & "',NomeFantasia= '" & txt02.Text & "'", banco

 

O estranho é que a sintaxe do SELECT (para mostrar os registros no grid) funciona normalmente.

 

Se alguém poder me dar uma luz ou ter o programa pronto, agradeço desde já. Preciso terminar esse programa, para usar na empresa do meu pai e na qual eu também trabalho.

 

Valeu, abraços a todos. ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá galera, primeiro quero parabenizar à todos que contribuem para manter esse forúm tão bom e rico em conteúdo. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Agora, o problema: eu baixei esse programa (cadastro de clientes) do site do macoratti (http://www.macoratti.net/vb_fbd1.htm), porém não está completo. Eu tentei fazer com que um registro fosse atualizado, mas não dá certo:

 

"erro '3705' - operação não permitida quando o objeto está aberto"

 

e o debug apontou para a linha de update do bd:

 

Tabela.Open "Update Empresas set Tipo= '" & txt00.Text & "',Codigo= '" & txt01.Text & "',NomeFantasia= '" & txt02.Text & "'", banco

 

O estranho é que a sintaxe do SELECT (para mostrar os registros no grid) funciona normalmente.

 

Se alguém poder me dar uma luz ou ter o programa pronto, agradeço desde já. Preciso terminar esse programa, para usar na empresa do meu pai e na qual eu também trabalho.

 

Valeu, abraços a todos. ^_^

Se você diz que a sintaxe do select já deu certo, é porque antes disso tem um select né, então você já está com o "tabela" aberto, por isso está dando esse erro.

 

Feche (.close), depois faça seu update.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

hmm entendi, Claudio Neto. Eu fiz o seguinte:Tabela.CloseTabela.Open "Update Empresas set NomeFantasia= '" & txt02.Text & "' where Codigo= '" & txt01.Text & "'", bancoessas linhas server parar modificar apenas o registro onde está apontado o txt01.textai, deu o erro: error -2147217913(8004e07)Tipo de dados incompatível na expressão de critérioe apontou novamente para a linha da sintaxe UPDATE

Compartilhar este post


Link para o post
Compartilhar em outros sites

hmm entendi, Claudio Neto. Eu fiz o seguinte:Tabela.CloseTabela.Open "Update Empresas set NomeFantasia= '" & txt02.Text & "' where Codigo= '" & txt01.Text & "'", bancoessas linhas server parar modificar apenas o registro onde está apontado o txt01.textai, deu o erro: error -2147217913(8004e07)Tipo de dados incompatível na expressão de critérioe apontou novamente para a linha da sintaxe UPDATE

Se você só vai alterar uma unica célula, te recomendo nem utilizar o update.Deixe sua conexão aberta, depois faça tabela.fields("nomecampo") = text1.texttabela.updateIsso revolve, abraços..

Compartilhar este post


Link para o post
Compartilhar em outros sites

aah quase deu certo, Claudio. Infelizmente apareceu mais um erro :( "O conjunto de registros atual não oferece suporte para atualização. Isso pode ser uma limitação do provedor ou do tipo de bloqueio selecionado"Esse eu erro eu entendi. A conexão no module1.bas não está configurada para edição (que eu acho que seria o OpenDynaset)

Compartilhar este post


Link para o post
Compartilhar em outros sites

aah quase deu certo, Claudio. Infelizmente apareceu mais um erro :( "O conjunto de registros atual não oferece suporte para atualização. Isso pode ser uma limitação do provedor ou do tipo de bloqueio selecionado"Esse eu erro eu entendi. A conexão no module1.bas não está configurada para edição (que eu acho que seria o OpenDynaset)

Isso ai mesmo, é ´so o tipo de conexão que você usou, use openkeyset, e opendinamyc que funciona.Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

aah quase deu certo, Claudio. Infelizmente apareceu mais um erro :( "O conjunto de registros atual não oferece suporte para atualização. Isso pode ser uma limitação do provedor ou do tipo de bloqueio selecionado"Esse eu erro eu entendi. A conexão no module1.bas não está configurada para edição (que eu acho que seria o OpenDynaset)

Isso ai mesmo, é ´so o tipo de conexão que você usou, use openkeyset, e opendinamyc que funciona.Abraços...
certo, e como faço isso? seria na linha 'banco.provider'?meu module:Public banco As ADODB.ConnectionPublic Tabela As ADODB.RecordsetPublic caminho As StringPublic Sub AcessoBD() Set banco = New ADODB.Connection banco.CursorLocation = adUseClient banco.Provider = "Microsoft.Jet.OleDB.4.0" banco.Open "Data Source = " & caminhoEnd SubPrivate Sub Main() caminho = "C:\formbusca\clientes.mdb" AcessoBD If App.PrevInstance = True Then MsgBox "O sistema já está em execução!", 48, "Atenção!" End End If frmprocuracategorias.ShowEnd SubAbraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

aah quase deu certo, Claudio. Infelizmente apareceu mais um erro :( "O conjunto de registros atual não oferece suporte para atualização. Isso pode ser uma limitação do provedor ou do tipo de bloqueio selecionado"Esse eu erro eu entendi. A conexão no module1.bas não está configurada para edição (que eu acho que seria o OpenDynaset)

Isso ai mesmo, é ´so o tipo de conexão que você usou, use openkeyset, e opendinamyc que funciona.Abraços...
certo, e como faço isso? seria na linha 'banco.provider'?meu module:Public banco As ADODB.ConnectionPublic Tabela As ADODB.RecordsetPublic caminho As StringPublic Sub AcessoBD() Set banco = New ADODB.Connection banco.CursorLocation = adUseClient banco.Provider = "Microsoft.Jet.OleDB.4.0" banco.Open "Data Source = " & caminhoEnd SubPrivate Sub Main() caminho = "C:\formbusca\clientes.mdb" AcessoBD If App.PrevInstance = True Then MsgBox "O sistema já está em execução!", 48, "Atenção!" End End If frmprocuracategorias.ShowEnd SubAbraços
Na verdade não, é na linha tabela.open "select * from teste", banco, adOpenKeyset, adLockOptimistic

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.