Erro: O tamanho do arquivo Excel aumenta ao editar ou atualizar o Recordset ADO em planilha do Excel

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: 293828
Sintomas
Quando você atualiza uma planilha do Microsoft Excel por meio de um Recordset do ActiveX Data Objects (ADO), aumenta o tamanho de arquivo do Excel. Esse comportamento é mais evidente quando você usar a coleção de parâmetros do ADO para fazer alterações para a planilha subjacente.

Parece que a porcentagem que aumenta o tamanho do arquivo não é determinada pelo número de atualizações que são concluídas, mas pelo tamanho da planilha original. Esse crescimento, às vezes, pode ser duplo quanto o tamanho original do arquivo.
Resolução
Quando você abrir e salvar novamente a pasta de trabalho no aplicativo do Excel, Excel depois das atualizações de ADO terem sido aplicadas, restaura a pasta de trabalho para um tamanho menor
Situação
A Microsoft confirmou que esse é um problema nos produtos da Microsoft listados no começo deste artigo.
Mais Informações

Etapas para reproduzir o problema

Criar a planilha do Excel

  1. Crie uma nova planilha do Microsoft Excel chamada Test.xls e salve Test.xls em uma pasta. Você também salvará o novo projeto Visual Basic que você criar o segundo conjunto de etapas para esta pasta.
  2. Abra Test.xls. Digite as informações a seguir nas células:
    1. Selecione a célula e digite CustomerID .
    2. Selecione a célula B1 e digite o nome do cliente .
    3. Selecione a célula A2 e digite 1 .
    4. Selecione a célula B2 e digite teste .
  3. Use o recurso Preenchimento automático para preencher A coluna com uma série de números da seguinte maneira:
    1. Selecione a célula A2.
    2. Localize o pequeno quadrado preto no canto inferior direito da célula selecionada, que é chamado a alça de preenchimento. Aponta para a alça de preenchimento até que o ponteiro se transforme em um sinal de mais (+) sinal.
    3. Clique com o botão direito do mouse a alça de preenchimento, arraste a alça de preenchimento para a linha de 1500 e, em seguida, clique em Preencher série . Isso deve incrementar números da coluna A partir de 1 para 1499.
  4. Use o recurso Preenchimento automático para copiar o valor de teste na célula B2 para a linha de 1500 da seguinte maneira:
    1. Selecione a célula B2.
    2. Clique com o botão direito do mouse a alça de preenchimento, arraste a alça de preenchimento para linha 1500 e, em seguida, clique em Copiar células .
  5. Salve a planilha do Excel e feche o Excel.
  6. No Windows Explorer, aponte para documentos , clique com o botão direito do mouse Test.xls e, em seguida, clique em Propriedades . Anote o tamanho do arquivo que está listado na guia Geral . Durante esse teste, o tamanho do arquivo era aproximadamente 86.5 KB.

Criar o projeto do Visual Basic

  1. Crie um novo projeto Standard EXE no Visual Basic. O Form1 é criado por padrão.
  2. A partir do menu Project , clique em referências , definir uma referência ao Microsoft ActiveX Data Objects 2.X e, em seguida, clique em OK .
  3. Cole o código a seguir na janela de código do Form1:
    Option ExplicitDim cn As New ADODB.ConnectionDim cmd As New ADODB.CommandPrivate Sub Form_Load()    With cn        .ConnectionString = "DSN=Excel Files;" & _            "DBQ=" & App.Path & "\test.xls;" & _            "DefaultDir=" & App.Path & ";DriverId=22;" & _            "MaxBufferSize=2048;PageTimeout=5;" & _            "Initial Catalog=" & App.Path & "\test;"            .Open    End With        Set cmd = New ADODB.Command    cmd.ActiveConnection = cn        cmd.CommandText = "update [Sheet1$] set [CustomerName]=? where [CustomerID] = ?"    cmd.Parameters.Append cmd.CreateParameter("CustomerName", adChar, adParamInput, 10, "j")    cmd.Parameters.Append cmd.CreateParameter("CustomerID", adInteger, adParamInput, 4, 4)    cmd.Execute    cn.Close    Set cmd = Nothing    Set cn = Nothing    End Sub					
  4. Salve o projeto Visual Basic e Form1 na mesma pasta como a planilha do Excel que você criou nas etapas anteriores.
  5. Execute o projeto e garantir que o Form1 é exibida.
  6. Feche Formulário1.
  7. Vá para a pasta que contém Test.xls. Clique com o botão direito do mouse Test.xls e, em seguida, clique em Propriedades . Observe que o tamanho do arquivo de Test.xls é muito maior do que o tamanho do arquivo original. Nesse teste, era 165 KB (que é mais de 90 por cento maior).
  8. Reabra a pasta de trabalho modificada no Microsoft Excel e salvá-lo novamente. Clique com o botão direito do mouse Test.xls no Windows Explorer e, em seguida, clique em Propriedades . Observe que o tamanho do arquivo de Test.xls agora foi restaurado aproximadamente ao tamanho de arquivo original.
Inflar obtém maior

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 293828 - Última Revisão: 05/08/2003 18:26:49 - Revisão: 2.1

Microsoft Data Access Components 2.1 Service Pack 2, Microsoft Data Access Components 2.1 Service Pack 1, Microsoft Data Access Components 2.1 Service Pack 2, Microsoft Data Access Components 2.5, Microsoft Data Access Components 2.5 Service Pack 1, Microsoft Data Access Components 2.6, Microsoft Data Access Components 2.7

  • kbmt kbbug kbdatabase kbjet kbnofix KB293828 KbMtpt
Comentários