ACC2000: Importar ou vincular um arquivo de texto falha para um arquivo que não possui uma extensão de nome de arquivo válido

Traduções deste artigo Traduções deste artigo
ID do artigo: 304206 - Exibir os produtos aos quais esse artigo se aplica.
Avançadas: Requer especialista de codificação, interoperabilidade e habilidades de multiusuário.

Este artigo se aplica a um banco de dados do Microsoft Access (.mdb) e para um projeto Microsoft Access (.adp).

importante : Este artigo contém informações sobre como modificar o registro. Antes de modificar o registro, certifique-se de backup e certifique-se que você saiba como restaurar o registro se ocorrer um problema. Para obter informações sobre como fazer backup, restaurar e editar o registro, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
256986Descrição do registro do Microsoft Windows
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Quando você tenta importar ou vincular um arquivo de texto, você recebe uma das seguintes mensagens de erro:
Erro em tempo de execução '3027':

Não é possível atualizar. Banco de dados ou objeto é somente leitura.
- ou -
Não é possível atualizar. Banco de dados ou objeto é somente leitura.

Causa

O arquivo que você estiver importando ou vinculando não tem uma extensão de nome de arquivo válido.

Resolução

Use qualquer um dos três métodos a seguir para solucionar esse comportamento.

Método 1 - renomear o arquivo para que ele possui uma extensão de nome de arquivo válido

As seguintes extensões de nome de arquivo são válidas:
-txt
-csv
-guia
-asc
Observação: Se os arquivos de texto originalmente arquivos HTM ou HTML, você também pode renomeá-los usando as extensões de nome de arquivo .htm ou .HTML.

Método 2 - programaticamente importar arquivos que não têm uma extensão .txt

Para obter um exemplo de como importar programaticamente os arquivos que não têm uma extensão .txt, execute estas etapas:
  • Crie uma nova função:
    1. Abra o banco de dados de exemplo Northwind.mdb.
    2. Clique na guia módulos .
    3. Clique em novo .
    4. Digite ou cole o código a seguir no módulo:
      Public Function ImportNonTXT()
          Dim fs, Fn, FLength, Fext, FDot, FOrig
          
          Set fs = CreateObject("Scripting.FileSystemObject")
          Set Fn = fs.Getfile("C:\Employees")
          
          ' This holds the file's original name for rename later.
          FOrig = Fn.Name
          ' Get the length of the file name.
          FLength = Len(Fn.Name)
          ' Set this value = to the last four characters of the file name.
          Fext = Right(Fn.Name, 4)
          ' Set this = to the first character.
          FDot = Left(Fext, 1)
          
          ' If there is a dot in the fourth from the last position...
          If FDot = "." Then
              '... and the extension is not .txt.
              If Fext <> ".txt" Then
                  ' Remove the extension from the file name.
                  Fn.Name = Left(Fn.Name, (FLength - 4))
                  ' Add the .txt to the file name.
                  Fn.Name = Fn.Name & ".txt"
              End If
          Else
              ' If there is not a dot in the fourth position
              ' add the .txt extension.
              Fn.Name = Fn.Name & ".txt"
          End If
          
          ' Transfer the file to a new table.
          DoCmd.TransferText acImportDelim, "", "Employees_Text", "C:\Employees.txt", False, ""
      
          ' After the file is transferred, rename it back to
          ' its original name.
          Fn.Name = FOrig
      
      End Function
      						
    5. Salve o módulo como Import_Text .
    6. Crie uma nova macro contendo a ação ExecutarCódigo.
    7. Na propriedade Function Name , digite ImportNonTXT() .

      Observação: "ImportNonTXT" é equivalente ao nome da função.
    8. Salve a macro como mcrImport texto .
  • Exporte a tabela Funcionários:
    1. Clique na tabela funcionários , mas não abri-lo.
    2. No menu arquivo , clique em Exportar para abrir a caixa de diálogo Exportar Tabela .
    3. Na caixa Salvar em , vá para a raiz da unidade C (C:\).
    4. Na caixa de texto Salvar como tipo , clique em Arquivos de texto .
    5. Na caixa de texto nome do arquivo , digite Employees.txt .
    6. Clique em Salvar para abrir o Assistente para texto de importação.
    7. Clique em Concluir .
  • Renomeie o arquivo exportado:
    1. No Windows Explorer, vá para a raiz da unidade C, onde você salvou Employees.txt.
    2. Clique com o botão direito do mouse Employees.txt e, em seguida, clique em Renomear .
    3. Remover a extensão de nome de arquivo .txt e, em seguida, pressione ENTER.

      Observação : Mostrar das extensões de nome de arquivo pode estar desativada no computador. Para ativá-la, clique em Opções de pasta no menu Ferramentas , clique na guia Exibir e clique para desmarcar a caixa de seleção Ocultar as extensões dos tipos de arquivo conhecidos .
    4. Clique em Sim para o prompt.
  • Execute a macro. O arquivo temporariamente é renomeado com a extensão .txt, importado e, em seguida, renomeado para seu nome original.
Em algumas situações, talvez não seja possível usar a extensão .txt. Por exemplo, se os arquivos de texto são gerados eletronicamente, talvez seja impraticável para renomear os arquivos ou remover a extensão, especialmente, se o arquivo ou arquivos forem gerados regularmente.

Com uma alteração de código pequeno, você também pode importar os arquivos .RTF. Para obter um exemplo de como fazer isso, execute estas etapas:
  1. Exclua o arquivo importado do banco de dados.
  2. Renomeie o arquivo no C:\ para Employees.rtf.
  3. Alterar a especificação de arquivo para a seguinte linha de código de
    Set Fn = fs.Getfile("C:\Employees")
    						
    para:
    Set Fn = fs.Getfile("C:\Employees.rtf")
    					
  4. Execute a macro novamente.

    Observe que o arquivo é importado com êxito.

Método 3 - modificar o registro do sistema

Aviso : se você usar o Editor do Registro incorretamente, poderá causar problemas sérios que talvez exijam a reinstalação do sistema operacional. A Microsoft não garante que você pode resolver problemas resultantes do uso incorreto do Editor do Registro. Use o Editor do registro por sua própria conta e risco.
  1. Inicie o Editor do Registro (Regedt32.exe).
  2. Localize o valor Desativado extensões sob a seguinte subchave no Registro:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\Text
  3. No menu Editar , clique em Modificar , acrescentar a nova extensão à lista existente e, em seguida, clique em OK .

    Observação: Elementos da lista de dados do valor são separados por vírgulas.
  4. Feche o Editor do Registro.

Situação

Esse comportamento é por design.

Mais Informações

Antes da atualização mais recente do Microsoft Jet versão 3.5 (Jet 3.5, Service Pack 3), o Microsoft Access 97 não gerou erros quando você importou ou arquivos vinculados que não tem uma extensão válida. Na verdade, o arquivo não foi necessário para ter qualquer extensão. Esse comportamento foi alterado no Jet 3.5 Service Pack 3 ou posterior, que afeta o Access 2000. Importar ou vincular arquivos de texto que não ter .txt, .csv, *.TAB, .asc, .tmp, .htm ou .HTML extensão não é suportada.

Passos para reproduzir o problema

  1. Use o bloco de notas ou outro editor de texto para criar um novo arquivo de texto.
  2. Salve o arquivo como MyTest.txt .
  3. Renomeie o arquivo para MyTest , sem a extensão .txt.
  4. Importe MyTest para o Microsoft Access usando o Assistente para importação de texto.

Referências

Para obter informações adicionais, clique nos números abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
239471Jet 4.0 Text IISAM permite anexar linhas em arquivos de sistema do usuário
239105Texto ISAM do Jet 3.5 permite anexar linhas ao arquivo de sistema do usuário
172733ACC97: Atualização de versão do Microsoft Jet 3.5 disponível
Para obter mais informações sobre a ação TransferirTexto ou método, clique em Ajuda do Microsoft Access no menu Ajuda , digite transferText no Assistente do Office ou no Assistente de resposta e, em seguida, clique em Pesquisar para exibir os tópicos retornados.

Propriedades

ID do artigo: 304206 - Última revisão: segunda-feira, 28 de junho de 2004 - Revisão: 2.0
A informação contida neste artigo aplica-se a:
  • Microsoft Access 2000 Standard Edition
Palavras-chave: 
kbmt kberrmsg kbprb KB304206 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: 304206

Submeter comentários

 

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