ERRO AO GRAVAR ALTERACAO
Preciso de mais uma ajuda de vcs, o seguinte no meu form se navego nos registros atraves dos botoes ANTERIOR e PROXIMO consigo alterar normalmente o registro, mas se uso uma busca atraves de um inputbox ou digitando o codigo e clicando em um botao para mostrar os dados nao consigo alterar da o seguinte erro:
Erro: 3251 O conjunto de registros atual nao oferece suporte para atualizacao. Isso pode ser uma limitacao do provedor ou do tipo de bloqueio selecionado.
estou usando a seguinte linha de conexao:
rs.Open "Select * from tabela", cnn, 3, 3
em alguns casos to usando: rs.Open "Select * from agendamento", cnn,1, 3
mas isso esta ocorrendo em todos os forms que faco consulta pelo inputbox e tento alterar.
Erro: 3251 O conjunto de registros atual nao oferece suporte para atualizacao. Isso pode ser uma limitacao do provedor ou do tipo de bloqueio selecionado.
estou usando a seguinte linha de conexao:
rs.Open "Select * from tabela", cnn, 3, 3
em alguns casos to usando: rs.Open "Select * from agendamento", cnn,1, 3
mas isso esta ocorrendo em todos os forms que faco consulta pelo inputbox e tento alterar.
Como vc abriu o banco de dados?
Post a string de conexão.
Provavelmente tah aberto como somente-leitura.
Post a string de conexão.
Provavelmente tah aberto como somente-leitura.
Não falta a instrução de atualizar o banco de dados após a consulta ?
ex: rs.refresh
Após a consulta
ex: rs.refresh
Após a consulta
rs.Open "Select * from tabela", cnn, 3, 3
Qual a CONNECTIONSTRING CNN?
Esta string aqui está certa:
Ele abre como KEYSET e travamento OTIMISTA, a tabela fica em LEITURA e GRAVAÇÃO o tempo todo.
Derepente, na hora de abrir a conexão está o erro.
Esta string aqui está certa:
rs.Open "Select * from agendamento", cnn,1, 3 Ele abre como KEYSET e travamento OTIMISTA, a tabela fica em LEITURA e GRAVAÇÃO o tempo todo.
Derepente, na hora de abrir a conexão está o erro.
Set cnn = New ADODB.Connection
Set rs = New ADODB.Recordset
cnn.CursorLocation = adUseClient
cnn.Open "Provider=sqloledb;" ....
Set rs = New ADODB.Recordset
cnn.CursorLocation = adUseClient
cnn.Open "Provider=sqloledb;" ....
Citação:NEO_VR escreveu:
Qual a CONNECTIONSTRING CNN?
Esta string aqui está certa:rs.Open [Ãâ€ÂÂ]Select * from agendamento[Ãâ€ÂÂ], cnn,1, 3
Ele abre como KEYSET e travamento OTIMISTA, a tabela fica em LEITURA e GRAVAÇÃO o tempo todo.
Derepente, na hora de abrir a conexão está o erro.
Vc está usando o mesmo recordset pra efetuar a busca e para fazer a manutenção na tabela?
Tipo, vc dá um .CLOSE na hora de fazer a busca, e abre novamente com o critério especificado?
Defina um RECORDSET SOMENTE PARA A TELA DE BUSCA, e abre e fecha ele quando o registro for encontrado (ou não)... Trabalhe com Recordsets separados, um para ler e gravar na tabela, e outro para fazer a busca...
Tipo, vc dá um .CLOSE na hora de fazer a busca, e abre novamente com o critério especificado?
Defina um RECORDSET SOMENTE PARA A TELA DE BUSCA, e abre e fecha ele quando o registro for encontrado (ou não)... Trabalhe com Recordsets separados, um para ler e gravar na tabela, e outro para fazer a busca...
vc ta tendo probelma com o indece da tabela sempre que vc for incluir ou altera vc tem que falar qual indece vc esta usando, uma boa dica é sempre que vc for altera faça uma busca por codigo que elimina totalmente os error exemplo:
no alterar
tabela.Index = "primarykey"
tabela.MoveFirst
tabela.Seek "=", txtcodigo 'aqui vc coloca a text referente ao indece
dai por diante é so continuar a rotina de alteração
no alterar
tabela.Index = "primarykey"
tabela.MoveFirst
tabela.Seek "=", txtcodigo 'aqui vc coloca a text referente ao indece
dai por diante é so continuar a rotina de alteração
BOM
POSTA O CÓ“DIGO DO MOMENTO DO FILTRO ATé A ALTERAÇÃO
PELA MENSSAGEM é TIPO CURSOR Q VC USA NA HORA Q VAI ALTERAR
TENTA UTILIZAR O COMANDO UPDATE NA TUA CONEXÃO DE STRING
CNN.EXECUTE "UPDATE TABELA SET CAMPO=VALOR WHERE CAMPOFILTRO=" & VALOR
ESPERO TER AJUDADO
POSTA O CÓ“DIGO DO MOMENTO DO FILTRO ATé A ALTERAÇÃO
PELA MENSSAGEM é TIPO CURSOR Q VC USA NA HORA Q VAI ALTERAR
TENTA UTILIZAR O COMANDO UPDATE NA TUA CONEXÃO DE STRING
CNN.EXECUTE "UPDATE TABELA SET CAMPO=VALOR WHERE CAMPOFILTRO=" & VALOR
ESPERO TER AJUDADO
Tópico encerrado , respostas não são mais permitidas