ACC2000: Nova linha na tabela do SQL Server vinculada desaparece ou aparece como um duplicado do último registro

Traduções deste artigo Traduções deste artigo
ID do artigo: 251289 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Moderado: Requer básica de macro, codificação e interoperabilidade habilidades.

Este artigo se aplica somente a um banco de dados do Microsoft Access (.mdb).

Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Quando você adicionar um novo registro a uma tabela vinculada do Microsoft SQL Server e, em seguida, move para um registro diferente, você pode perceber um dos seguintes sintomas:
Quando você pressiona a tecla TAB para mover para o próximo registro novo depois de inserir qualquer parte de um novo registro em uma tabela, o registro que você acabou de digitar disappears.When você digitar um novo registro completo em uma tabela e mova para um registro existente, o registro que você digitou disappears.When você digita apenas parte de um novo registro uma tabela e mova desativar esse registro para um registro existente, o novo registro desaparece e o último registro na tabela parece estar duplicated.When que digitar qualquer parte de um registro em um formulário e, em seguida, deixe o registro, as informações digitadas desaparecem.
importante : dados não são efetivamente perdidos. Não tente adicionar novamente o registro; ele existe. Não tente excluir o registro duplicado aparente. Por excluí-la, não o registro que acabou você excluir o registro original, que aparece para ser duplicado, adicionado.

Causa

Se a tabela do SQL Server tem uma coluna de identidade, quando você tenta adicionar um registro, você em vez disso, consulte o que parece ser uma duplicata do registro anterior. O novo registro não exibe os dados corretos até que você atualizar o conjunto de registros. Esse comportamento está relacionado a maneira como o Microsoft Access requer o banco de dados do SQL Server.

Resolução

Para resolver esse problema, obtenha a atualização do Microsoft Jet 4.0 service pack mais recente. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
239114Como: Obter o Service Pack mais recente para o Microsoft Jet 4.0 Database Engine
Para contornar este problema, use qualquer uma das três métodos a seguir.

Usando um projeto do Access

Você pode usar um projeto do Access em vez de um banco de dados do Access. Usando um projeto do Access, você não precisará vinculou tabelas para se conectar a um banco de dados SQL Server.

Para obter informações adicionais sobre como converter seu banco de dados Access em um projeto do Access, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
241743ACC2000: "Ferramentas de Upsizing do Access 2000" documento disponível no Centro de download
250616ACC2000: Como utilizar o DTS para exportar dados de um banco de dados do Microsoft Access para um banco de dados SQL Server

Usando formulários em um banco de dados do Access

Se você vir esse comportamento em um formulário, use o Microsoft Visual Basic para código de aplicativos para os eventos BeforeInsert e AfterInsert para repetir a consulta automaticamente os dados e mover o formulário para o registro recém-adicionado. Com o código de exemplo abaixo, você pode adicionar aos eventos para atualizar automaticamente o registro no formulário.

Observação : com esse método você pode perceber você mover para fora um novo registro duas vezes. Isto é, quando você adiciona um novo registro e em seguida, pressione a tecla TAB ou um dos botões de navegação de registros para adicionar outro novo registro ou mover para o registro anterior, você precise pressionar o botão de navegação de registros uma segunda vez para ir para o registro adequado. Isso não afeta a fechar o formulário.
Option Compare Database
Option Explicit

Dim mfRequery As Boolean

Private Sub Form_AfterInsert()

    If mfRequery = True Then
        ' If the variable indicates a Requery
        ' is needed, Requery the form.
        Me.Requery
        ' Move back to the record that was just added
        DoCmd.GoToRecord acDataForm, Me.Name, acLast
        mfRequery = False
    End If

End Sub

Private Sub Form_BeforeInsert(Cancel As Integer)

    If Me.NewRecord = True Then
        ' If this is a new record, set a variable
        ' to indicate the need to Requery.
        mfRequery = True
    End If
    
End Sub
				

Usar tabelas em um MDB

Se você vir esse comportamento em uma tabela, você pode manualmente recorrer a tabela ou feche e reabra a tabela.

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no começo deste artigo.   Esse problema foi corrigido no Microsoft Jet 4.0 service pack mais recente.

Mais Informações

Etapas para reproduzir o problema

  1. Abra o banco de dados de exemplo Northwind.mdb.
  2. Exporte a tabela Pedidos para um banco de dados existente do SQL Server. Nome OrdersTest .
  3. Crie um novo banco de dados do Access.
  4. No novo banco de dados, crie uma nova tabela vinculada à tabela OrdersTest exportados para o SQL Server.
  5. Depois de vincular a ele, abra a tabela.
  6. Role para baixo para o último registro.
  7. Na linha de registro nova, digite em um novo registro.
  8. Após digitar todos os dados, pressione a tecla seta para cima para mover o cursor fora do novo registro.
  9. Você verá o novo registro não estiver aparecendo, mas o último registro aparece duas vezes.
  10. No menu registros , clique em Requery . Você observa que a duplicata não existe mais.

Propriedades

ID do artigo: 251289 - Última revisão: domingo, 20 de outubro de 2013 - Revisão: 2.1
A informação contida neste artigo aplica-se a:
  • Microsoft Access 2000 Standard Edition
Palavras-chave: 
kbnosurvey kbarchive kbmt kbpending kbprb KB251289 KbMtpt
Traduçã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: 251289

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com