Você está offline; aguardando reconexão

Não é possível alterar, adicionar ou excluir dados das tabelas vinculadas a uma pasta de trabalho do Excel no Office Access 2007, no Office Access 2003 ou no Access 2002

O suporte para o Office 2003 terminou

A Microsoft terminou o suporte para o Office 2003 em 8 de abril de 2014. Esta alteração afetou as suas atualizações de software e opções de segurança. Saiba o que isto significa para você e como permanecer protegido.

Sintomas
No Microsoft Office Access 2007, no Microsoft Office Access 2003 ou no Microsoft Access 2002, não é possível alterar, adicionar ou excluir dados das tabelas vinculadas a uma pasta de trabalho do Microsoft Excel.

Além disso, você pode perceber esse comportamento quando qualquer uma das seguintes condições for verdadeira:
  • Você criou uma consulta para recuperar dados de tabelas vinculadas a uma pasta de trabalho do Excel.
  • Você criou um formulário que acessa dados de tabelas vinculadas a uma pasta de trabalho do Excel.
  • Você usa DAO ou ADO para atualizar programaticamente tabelas vinculadas a uma pasta de trabalho do Excel.
Você recebe a seguinte mensagem ao realizar uma consulta para atualizar registros em uma pasta de trabalho do Excel vinculada:
A operação deve usar uma consulta atualizável
Você recebe a seguinte mensagem quando usa o DAO para atualizar programaticamente tabelas vinculadas a uma pasta de trabalho do Excel:
Erro de tempo de execução 3027 Não é possível atualizar. Banco de dados ou objeto é do tipo somente leitura.
Quando você tenta atualizar os dados vinculados no ADO, a mensagem é a mesma, mas o número do erro pode ser semelhante ao seguinte:
-2147217911 (80040e09)
Ao executar uma consulta para inserir registros em uma pasta de trabalho do Excel, a seguinte mensagem de erro é exibida se a pasta de trabalho do Excel não for vinculada a um banco de dados do Access:
A operação deve usar uma consulta atualizável
Causa
Esse comportamento esperado ocorre quando uma das seguintes condições for verdadeira:
  • Você está usando o Office Access 2007.
  • Você instalou o Microsoft Office 2003 Service Pack 2 (SP2) ou quaisquer atualizações do Access 2003 lançadas após o Office 2003 SP2.

    Para obter informações adicionais sobre o Microsoft Office 2003 Service Pack 2, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento da Microsoft:
    887616 Descrição do Office 2003 Service Pack 2
  • Você instalou a atualização para o Access 2002 (KB904018) com data de 18 de outubro de 2005.

    Para obter informações adicionais sobre a atualização para o Access 2002 (KB904018), clique no número abaixo para ler o artigo na Base de Dados de Conhecimento da Microsoft:
    904018 Descrição da atualização para o Access 2002: 18.10.05
  • Você instalou um aplicativo de tempo de execução do Access que inclui o Microsoft Office 2003 Service Pack 2 (SP2), quaisquer atualizações do Access 2003 lançadas após o Office 2003 SP2, ou a atualização para Access 2002 (KB904018) com data de 18 de outubro de 2005 ou mais recente.
    Para obter informações adicionais sobre como incluir os arquivos de atualização do Office com um aplicativo de tempo de execução do Access, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft (a página pode estar em inglês):
    916176 O assistente usa os arquivos de tempo de execução incluídos com a versão de lançamento do Access quando você cria um pacote de instalação para um aplicativo no Access 2003 ou no Access 2002
Como Contornar
Como solução alternativa para esse comportamento esperado, use um dos seguintes métodos.

Método 1: Usar o Microsoft Excel

Abra a pasta de trabalho vinculada do Excel no Microsoft Excel e faça suas alterações na pasta de trabalho. Quando você tiver concluído as alterações, salve-as e feche a pasta de trabalho.

Método 2: Usar o Office Access 2007, o Access 2003 ou o Access 2002

Importe a pasta de trabalho vinculada do Excel para o Access e faça suas alterações nos dados. Quando você tiver concluído as alterações, exporte os dados para um arquivo .xls do Excel.

Para exportar a tabela do Access para o Excel, execute o seguinte código no Access.
Public Sub WorkArounds()On Error GoTo Leave    Dim strSQL, SQL As String    Dim Db As ADODB.Connection    Set Db = New ADODB.Connection    Db.CursorLocation = adUseClient    Db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=<AccessPath>"    'Note: In Office Access 2007, use the following line of code:    'Db.Open "PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source=<AccessPath>"    SQL = "<MyQuery>"    CopyRecordSetToXL SQL, Db    Db.Close    MsgBox "Access has successfully exported the data to excel file.", vbInformation, "Export Successful."    Exit SubLeave:        MsgBox Err.Description, vbCritical, "Error"        Exit SubEnd SubPrivate Sub CopyRecordSetToXL(SQL As String, con As ADODB.Connection)    Dim rs As New ADODB.Recordset    Dim x    Dim i As Integer, y As Integer    Dim xlApp As Excel.Application    Dim xlwbBook As Excel.Workbook, xlwbAddin As Excel.Workbook    Dim xlwsSheet As Excel.Worksheet    Dim rnData As Excel.Range    Dim stFile As String, stAddin As String    Dim rng As Range    stFile = "<ExcelPath>"    'Instantiate a new session with the COM-Object Excel.exe.    Set xlApp = New Excel.Application    Set xlwbBook = xlApp.Workbooks.Open(stFile)    Set xlwsSheet = xlwbBook.Worksheets("<WorkSheets>")    xlwsSheet.Activate    'Getting the first cell to input the data.    xlwsSheet.Cells.SpecialCells(xlCellTypeLastCell).Select    y = xlApp.ActiveCell.Column - 1    xlApp.ActiveCell.Offset(1, -y).Select    x = xlwsSheet.Application.ActiveCell.Cells.Address    'Opening the recordset based on the SQL query and saving the data in the Excel worksheet.    rs.CursorLocation = adUseClient    If rs.State = adStateOpen Then        rs.Close    End If    rs.Open SQL, con    If rs.RecordCount > 0 Then        rs.MoveFirst        x = Replace(x, "$", "")        y = Mid(x, 2)        Set rng = xlwsSheet.Range(x)        xlwsSheet.Range(x).CopyFromRecordset rs    End If    xlwbBook.Close True    xlApp.Quit    Set xlwsSheet = Nothing    Set xlwbBook = Nothing    Set xlApp = NothingEnd Sub
Note Nesse exemplo de código, substitua os seguintes espaços reservados:
  • <CaminhodoAccess>
  • <CaminhodoExcel>
  • <MinhaConsulta>
    <MinhaConsulta> representa a consulta executada nas tabelas no banco de dados do Access. O resultado da consulta é exportado para a pasta de trabalho do Excel.
  • <Planilhas>
    <Planilhas> representa a planilha do Excel para a qual você deseja exportar o resultado.
Para executar esse exemplo de código, pressione CTRL+G para abrir a janela Imediato, digite WorkArounds e pressione ENTER.
Mais Informações
Devido a problemas legais, a Microsoft desabilitou a funcionalidade no Access 2003 e no Access 2002 que permite que os usuários alterem dados em tabelas vinculadas que apontem para um intervalo em uma pasta de trabalho do Excel. No entanto, quando você faz as alterações diretamente na pasta de trabalho do Excel, as alterações aparecem na tabela vinculada no Access.
edit access2003 access2k3 acc2003 acc2k3 access2002 access2k2 accessxp acc2002 acc2k2 accxp excel2003 excel2k3 xl2003 xl2k3 excel2002 excel2k2 excelxp xl2002 xl2k2 xlxp excel2000 excel2k xl2000 xl2k
Propriedades

ID do Artigo: 904953 - Última Revisão: 04/23/2007 20:54:33 - Revisão: 6.1

  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Access 2002 Runtime
  • Microsoft Office Access 2003 Runtime
  • kbexpertiseadvanced kbdatabase kbtshoot kbprb KB904953
Comentários