ID do artigo: 140309 - Última revisão: terça-feira, 9 de dezembro de 2003 - Revisão: 2.0

Erro: Erro de atualização Recordset difere entre 16 bits e de 32 bits

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sintomas

Quando executando o método Update em um conjunto de registros, a mensagem de erro exibida para 16 bits Visual Basic e Visual Basic de 32 bits são completamente diferentes. No entanto, a causa do erro é o mesmo. Você não use o método AddNew ou Edit. antes de tentar salvar alterações em um registro.

Erro de 16 bits

Erro em tempo de execução '3426':
A ação foi cancelada por um objeto associado.

Erro de 32 bits

Erro em tempo de execução '3020':
Atualização ou CancelUpdate sem AddNew ou Edit..

Causa

A mensagem de erro de 16 bits é, na verdade, uma mensagem de erro 2.5 do Jet versão.

Como Contornar

Para solucionar esse bug, use o método Editar antes do método Update, antes para salvar as alterações para um conjunto de registros, como mostrado abaixo:
   Data1.RecordSet.Edit
   Data1.RecordSet.Update
				

Situação

A Microsoft confirmou este é um bug na versão de 16 bits do Visual Basic 4.0. Estamos estiver pesquisando esse problema e divulgaremos novas informações na Base de dados de Conhecimento da Microsoft como ele se torna disponível.

Mais Informações

Passos para reproduzir o erro no Visual Basic 4.0 16 bits

  1. Iniciar 16 bits Visual Basic 4.0 ou se ele já estiver sendo executado, clique em New Project no menu Arquivo.
  2. Coloque um controle dados no formulário Form1.
  3. Defina NomeDoBancoDeDados propriedade do controle Data Biblio.mdb.
  4. Defina OrigemDoRegistro propriedade do controle data como autores.
  5. Adicione um controle TextBox ao formulário Form1. Definir primeiro o TextBox DataSource propriedade do controle para dados1 e defina o DataField propriedade para autores.
  6. Adicione um botão de comando ao formulário Form1.
  7. Copie o exemplo de código a seguir para a janela de código do Form1:
           Private Sub Command1_Click()
              'To prevent the bug, uncomment the next line
              'Data1.RecordSet.Edit
              Data1.RecordSet.Update
           End Sub
    						
  8. Pressione a tecla F5 ou clique em Iniciar no menu Executar para iniciar o programa.
  9. Digite algum texto na caixa de texto.
  10. Clique no botão de comando. A seguinte mensagem de erro aparece na caixa de diálogo Microsoft Visual Basic:
    Erro em tempo de execução '3426':
    A ação foi cancelada por um objeto associado.
    Clique no botão Finalizar para fechar a caixa de diálogo e finalizar o programa.
  11. Salve o projeto. O projeto pode ser usado para recriar o erro de 32 bits.

Passos para reproduzir o erro no Visual Basic 4.0 de 32 bits

  1. Iniciar 4.0 do Visual Basic de 32 bits ou se ele já estiver sendo executado, clique em Open Project no menu Arquivo.
  2. Abra o projeto que apenas você salvou na etapa 12 acima.
  3. Pressione a tecla F5 ou clique em Iniciar no menu Executar para iniciar o programa.
  4. Digite algum texto na caixa de texto.
  5. Clique no botão de comando. A seguinte mensagem de erro aparece na caixa de diálogo Microsoft Visual Basic:
    Erro em tempo de execução '3020':
    Atualização ou CancelUpdate sem AddNew ou Edit..
    Clique no botão end para fechar a caixa de diálogo e finalizar o programa.

Referências

Para obter informações adicionais sobre mensagens de erro Visual Basic 4.0, consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft:
136250  (http://support.microsoft.com/kb/136250/EN-US/ ) LONG: Lista de erros interceptáveis para o Visual Basic 4.0

A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 de 16 bits Enterprise Edition
  • Microsoft Visual Basic 4.0 de 32 Bits Enterprise Edition
Palavras-chave: 
kbmt kbbug kbdatabase KB140309 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 140309  (http://support.microsoft.com/kb/140309/en-us/ )