Muito bem, certamente vez ou outra precisamos interagir com dados de planilhas MS Excel. O que fazer quando ao vincularmos as referidas planilhas ou importá-las deparamo-nos com uma mensagem de erro durante o processo, ou em determinados campos, ou ainda somente em certas células que aparecem na nossa query ou tabela. Como resolver isso? Por que isso ocorre?
Abaixo, traduzi o artigo encontrado no site de suporte da Microsoft (http://support.microsoft.com/), para os que tem menos intimidade com o idioma americano. O original pode ser acessado em: http://support.microsoft.com/kb/815277/
Sintomas: Quando sua query ou tabela vinculada a uma planilha do MS Excel mostra a seguinte mensagem de erro: Numeric field overflow ou algo semelhante a imagem em anexo:
CAUSA: O MS Access prepara (reserva) um tipo de informação para cada campo da planilha MS Excel. Esta área reservada (assignment) da memória tem como base para a definição do tipo da informação o conteúdo das primeiras 8 ocorrências (linhas) do campo.
Por exemplo:
Se um campo é do tipoNumérico e este tipo está contido nas primeiras oito linhas, seguido por valores texto nas demais linhas.
Neste caso o MS Access reservará o tipoNumérico ao vincular os campos da tabela ou query.
O MS Access mostrará uma falha ao vincular os registros que têm ocorrências diferentes, os valores que são texto aparecerão como "#Núm!".
Quando a sua query mostrar este campo, o Microsoft Jet Database Engine encontrará valoresTexto onde anteriormente eram esperados valoresNuméricos.
- Esta falha virá com erro, conforme demonstrado no tópico "Sintomas".
Resolvendo: Para resolver este problema, precisará ter certeza que todas as ocorrências, na fonte (planilha MS Excel), do seu campo sejam exatamente do mesmo tipo. Ou, Caso os campos na planilha MS Excel tenham ocorrências com diferentes tipos de conteúdo, formate o tipo do campo para Texto. Use o código a seguir para re-entrar os valores nas células. Em seguida, vincule a planilha MS Excel ao MS Access.
Para isso, siga os seguintes passos: ATENÇÃO Antes de você inicar os passos abaixo, seria importante fazer uma cópia de backup da sua planilha MS Excel.
1. | Abra a planilha fonte (source) no MS Excel. |
2. |
Na planilha, identifique o campo (ou campos) onde existem ocorrências de tipos misturados. |
3. |
Selecione e identifique as colunas, formatando as células da planilha comoTexto. |
4. |
Crie uma macro no MS Excel que contenha o conteúdo abaixo: Sub Addspace() Dim cell As Object For Each cell In Selection cell.Value = " " & cell.Value cell.Value = Right(cell.Value, Len(cell.Value) - 1) Next End Sub |
5. |
Selecione os campos na planilha que contenham conteúdos de tipos diferentes. Execute a macro criada no passo anterior. Nota Se ocorrer um erro quando estiver executando a sua macro nas células com problemas, ignore o erro. |
6. |
Salve a planilha. |
7. |
Abra a sua base de dados no MS Access. |
8. |
A partir da sua base de dados, vincule a planilha fonte (source) do MS Excel. |
Referências:
For additional information, click the following article numbers to view the articles in the Microsoft Knowledge Base:
815277(http://support.microsoft.com/kb/815277/). to MS Access 2000
282263(http://support.microsoft.com/kb/282263/)ACC2002: Ignored MaxScanRows Setting May Cause Improper Data Types in Linked Tables
208414(http://support.microsoft.com/kb/208414/EN-US/) ACC2000: #Num Appears in Linked Microsoft Excel Spreadsheet
APLICÁVEL PARA:
Microsoft Office Access 2003
Microsoft Access 2002 Standard Edition Microsoft Access 2000 Standard Edition
Nenhum comentário:
Postar um comentário