ACC2002: Mensagem de erro de "Erro de Server 134" quando tenta converter a base de dados

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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

282390
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
importante : Este artigo contém informações sobre como modificar o registo. Antes de modificar o registo, certifique-se de que efectua uma cópia de segurança e de que compreende como o restaurar o registo se ocorrer um problema. Para obter informações sobre como efectuar uma cópia de segurança, restaurar e editar o registo, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
256986Descrição do registo do Microsoft Windows
Moderado: Requer básica macros, codificação e interoperabilidade competências.

Este artigo aplica-se apenas a uma base de dados do Microsoft Access (.mdb).

Sintomas
Quando tenta converter a base de dados, poderá receber uma mensagem de erro semelhante à seguinte:
Erro de servidor 134: A variável nome '@ formulários......' já foi declarado. Os nomes das variáveis devem ser exclusivos num processo de consulta ou procedimento armazenado.

Erro de servidor 170: Linha 7: sintaxe incorrecta perto de ') '.
Causa
Este comportamento pode ocorrer se as consultas na base de dados conter parâmetros que correspondam ao através do primeiro 30 caracteres. Por exemplo, a seguinte consulta produz a mensagem de erro:
   PARAMETERS [123456789012345678901234567890start] DateTime,    [123456789012345678901234567890end] DateTime;   SELECT item, date   FROM Table1   WHERE date Between [123456789012345678901234567890start] And    [123456789012345678901234567890end];				
Nota: Se esta consulta contém dois parâmetros que correspondem entre si através do primeiro 30 caracteres:
  • [123456789012345678901234567890start] DateTime
  • [123456789012345678901234567890end] DateTime
Resolução
Para resolver este problema, altere os nomes de parâmetro de tal forma que diferem no primeiro 30 caracteres. Por exemplo, se a consulta contém os seguintes dois parâmetros
  • [123456789012345678901234567890start] DateTime
  • [123456789012345678901234567890end] DateTime
Pode alterar os parâmetros para o seguinte:
  • [start123456789012345678901234567890] DateTime
  • [end123456789012345678901234567890] DateTime
Tenha em atenção que o Assistente de conversão aceita apenas os primeiro 30 caracteres, pelo que a consulta SQL resultante contém os seguintes parâmetros:
  • (@ start1234567890123456789012345) DateTime
  • (@ end123456789012345678901234567) DateTime
Ponto Da Situação
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no início deste artigo.
Mais Informação
aviso : a utilização incorrecta do Editor de registo poderá provocar problemas graves que poderão forçar a reinstalação do sistema operativo. Microsoft não garante que os problemas resultantes da utilização incorrecta do Editor de registo possam ser resolvidos. As suas próprias risco da utilização do Editor de registo.

Passos para reproduzir o problema

  1. Inicie o Editor de registo (Regedit.exe).
  2. Abra a seguinte chave de registo:
    HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Access\Wizards\Preferences\Upsizer\Quiet
  3. Defina o valor desta chave como não e, em seguida, feche o Editor de registo.
  4. Inicie o Microsoft Access e, em seguida, criar uma nova base de dados, Db1.mdb.
  5. Criar uma nova tabela no Db1.mdb:
       Table: Table1   ----------------------   Field Name: ID   Data Type:  Text   PrimaryKey: Yes   Field Name: Date   Data Type:  Date/Time   Field Name: Item   Data Type:  Text					
  6. Na janela Base de dados, clique em consultas e, em seguida, faça duplo clique em criar uma nova consulta na vista de estrutura .
  7. Clique em Fechar e, em seguida, clique em SQL na barra de ferramentas Estrutura da consulta .
  8. No Editor de SQL, introduza a seguinte consulta:
       PARAMETERS [123456789012345678901234567890start] DateTime,    [123456789012345678901234567890end] DateTime;   SELECT item, date   FROM Table1   WHERE date Between [123456789012345678901234567890start] And    [123456789012345678901234567890end];					
  9. Guarde a consulta como qryLongParameters e, em seguida, feche o Editor de SQL.
  10. No menu Ferramentas , aponte para Utilitários de base de dados e, em seguida, clique em Assistente de conversão .
  11. Converter a base de dados para o SQL Server.

    Receberá uma mensagem de erro semelhante à listados na secção "Sintomas" deste artigo.
Referências
Para mais informações sobre como converter a base de dados, clique em Ajuda do Microsoft Access no menu Ajuda , escreva Converter no Assistente do Office ou no Assistente de respostas e, em seguida, clique em Procurar para visualizar os tópicos devolvidos.

pra

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 282390 - Última Revisão: 02/06/2014 01:28:40 - Revisão: 4.2

  • Microsoft Access 2002 Standard Edition
  • kbnosurvey kbarchive kbmt kbbug kbnofix KB282390 KbMtpt
Esta informação foi útil?