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

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
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
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
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 = FOrigEnd 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.
PRB acc2000 access 2000 TransferirTexto transferência texto txt *.txt .txt

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 304206 - Última Revisão: 12/06/2015 04:11:59 - Revisão: 2.0

Microsoft Access 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kberrmsg kbprb KB304206 KbMtpt
Comentários