Desempenho lento em tabelas ligadas do Access 2002, no Office Access 2003 e no Office 2007

Traduções de Artigos Traduções de Artigos
Artigo: 275085 - Ver produtos para os quais este artigo se aplica.
Para obter uma versão de Microsoft Access 2000 deste artigo, consulte 261000.
Principiante: Requer conhecimentos da interface do utilizador em computadores individuais.

Este artigo aplica-se apenas a uma base de dados do Microsoft Access (.mdb).

Expandir tudo | Reduzir tudo

Sintomas

Quando abre uma tabela ligada no Microsoft Access 2002, no Microsoft Office Access 2003. ou no Microsoft Office Access 2007 que pode apresentar registos relacionados numa subfolha de dados, o processo demora nitidamente mais do que acontece se utilizar a mesma base de dados no Microsoft Access 97.

Causa

Este comportamento ocorre se existirem muitas tabelas ligadas numa base de dados que também contenha relações muitos e a tabela que está a abrir tem a propriedade de Nome da subfolha de dados definida para [Auto] .

Resolução

Para contornar este problema, defina Nome da subfolha de dados propriedade a tabela [Nenhum] . Pode fazê-lo manualmente ou através de código.

Definir a propriedade ' nome subfolha de dados manualmente

Para definir a propriedade ' Nome subfolha de dados manualmente, siga estes passos.

Nota Estes passos só funcionam no Access 2002.
  1. Na base de dados back-end, abra uma tabela na vista de estrutura.
  2. No menu Ver , clique em Propriedades .
  3. Defina a propriedade Nome da subfolha de dados para [NONE] .
  4. Guarde e feche a tabela.

Definir a propriedade Name subfolha de dados para todas as tabelas utilizando código

Pode utilizar uma função do Visual Basic for Applications para definir automaticamente a propriedade Name subfolha de dados para todas as tabelas sem ser do sistema numa base de dados para [NONE] . Para o fazer, siga estes passos:
  1. Abra a base de dados back-end.
  2. Na janela Base de dados, clique em módulos e, em seguida, clique em Novo .
  3. No menu Ferramentas , clique em References . Certifique-se de que o Microsoft DAO 3.6 Object Library caixa de verificação está seleccionada e, em seguida, clique em OK .
  4. Escreva ou cole o seguinte código para o novo módulo.
    Sub TurnOffSubDataSheets()
    Dim MyDB As DAO.Database
    Dim MyProperty As DAO.Property
    Dim propName As String, propVal As String, rplpropValue As String
    Dim propType As Integer, i As Integer
    Dim intCount As Integer
    
    On Error GoTo tagError
    
    Set MyDB = CurrentDb
    propName = "SubDataSheetName"
    propType = 10
    propVal = "[None]"
    rplpropValue = "[Auto]"
    intCount = 0
    
    For i = 0 To MyDB.TableDefs.Count - 1
        If (MyDB.TableDefs(i).Attributes And dbSystemObject) = 0 Then
            If MyDB.TableDefs(i).Properties(propName).Value = rplpropValue Then
                 MyDB.TableDefs(i).Properties(propName).Value = propVal
                 intCount = intCount + 1
            End If
        End If
    tagFromErrorHandling:
    Next i
    
    MyDB.Close
    
    If intCount > 0 Then
        MsgBox "The " & propName & " value for " & intCount & " non-system tables has been updated to " & propVal & "."
    End If
    
    Exit Sub
    
    tagError:
    If Err.Number = 3270 Then
        Set MyProperty = MyDB.TableDefs(i).CreateProperty(propName)
        MyProperty.Type = propType
        MyProperty.Value = propVal
        MyDB.TableDefs(i).Properties.Append MyProperty
        intCount = intCount + 1
        Resume tagFromErrorHandling
    Else
        MsgBox Err.Description & vbCrLf & vbCrLf & " in TurnOffSubDataSheets routine."
    End If
    End Sub
    
  5. Na janela Immediate, escreva o texto seguinte e, em seguida, prima ENTER para executar a função:
    TurnOffSubDataSheets
    						
    nota que após um curto período de tempo, se todas as tabelas já não forem actualizadas, receber uma caixa de mensagem que indica que a propriedade SubDataSheetName <numberoftablesupdated> tabelas de sistema não foi actualizada para [NONE] .

Mais Informação

O Office Access 2007, Access 2003, Access 2002 e Access 2000 permitem visualizar registos relacionados de uma tabela numa subfolha de dados; esta funcionalidade não está disponível no Access 97. Para gerir as relações entre as tabelas relacionadas e principais, o sistema requer sobrecarga adicional pode aumentar o tempo de resposta, especialmente quando uma base de dados tem um grande número de tabelas ligadas e um grande número de relações entre tabelas.

A tabela principal numa relação um-para-muitos (a tabela no lado "um" da equação) pode ter a propriedade de Nome da subfolha de dados definida para [Nenhum] , nesse caso subfolhas de dados não são apresentadas. Ou a propriedade de Nome da subfolha de dados pode ser definida para o nome de uma tabela relacionada específico ou para [Auto] . Se a propriedade estiver definida como [Auto] , é possível seleccionar a tabela cujos registos pretende ver quando clicar no indicador de Expandir de um registo na tabela principal relacionada. Quando define a propriedade para [Auto] , isto pode reduzir desempenho nitidamente, especialmente em computadores mais antigos, quando a base de dados utiliza um grande número de tabelas ligadas. Este comportamento não ocorre quando todas as tabelas estão presentes na mesma base de dados.

Uma vez que o problema é um desempenho lento, factores tais como a velocidade do processador e recursos de sistema disponíveis podem causar a base de dados que efectua adequadamente num computador desempenho lento num computador diferente.

A Microsoft fornece exemplos de programação apenas, para fins sem garantia expressa ou implícita. Isto inclui, mas não está limitado a, as garantias implícitas de comercialização ou adequação a um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação apresentada e as ferramentas que são utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador.

Propriedades

Artigo: 275085 - Última revisão: 29 de março de 2007 - Revisão: 10.1
A informação contida neste artigo aplica-se a:
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Palavras-chave: 
kbmt kbbug kbperformance kbnofix KB275085 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 275085

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