Långsamma prestanda i länkade tabeller i Access 2002, i Office Access 2003 och Office 2007

BUGG #: 133539 (Office10)

En version av den här artikeln för Microsoft Access 2000 finns i 261000.Nybörjare: kräver kunskap om användargränssnittet på datorer med en enda användare. Den här artikeln gäller endast en Microsoft Access-databas (. mdb).

Symptom

När du öppnar en länkad tabell i Microsoft Access 2002 i Microsoft Office Access 2003. eller i Microsoft Office Access 2007 som kan visa relaterade poster i ett underdatablad, processen tar betydligt längre tid än den gör om du använder samma databas i Microsoft Access 97.

Orsak

Detta problem uppstår om det finns många länkade tabeller i en databas som också innehåller många relationer, och den tabell som du öppnar har egenskapen UnderdatabladsNamn inställd på [Auto].

Lösning

Undvik problemet genom att ange egenskapen namn för tabellens underdatablad till [none]. Du kan göra detta manuellt eller genom att använda kod.

Ange namn egenskapen för underdatabladet manuellt

Så här anger du egenskapen UnderdatabladsNamn manuellt. Notera Dessa steg fungerar bara på Access 2002.

  1. Öppna en tabell i designvyn i backend-databasen.

  2. Klicka påEgenskaperVisa -menyn.

  3. Ange egenskapen namn för underdatablad till[none].

  4. Spara och stäng sedan tabellen.

Ange egenskapen UnderdatabladsNamn för alla tabeller med hjälp av kod

Du kan använda en Visual Basic for Applications-funktion för att automatiskt ange namn egenskapen under data blad för alla icke-systemtabeller i en databas till [none]. Gör så här:

  1. Öppna backend-databasen.

  2. Klicka på moduleri databasfönstret och klicka sedan på ny.

  3. Klicka påreferenserverktyg -menyn. Kontrollera att kryssrutan objektbibliotek för Microsoft DAO 3,6 är markerad och klicka sedan på OK.

  4. Skriv eller klistra in följande kod i den nya modulen.

    Sub TurnOffSubDataSheets()Dim MyDB As DAO.DatabaseDim MyProperty As DAO.PropertyDim propName As String, propVal As String, rplpropValue As StringDim propType As Integer, i As IntegerDim intCount As IntegerOn Error GoTo tagErrorSet MyDB = CurrentDbpropName = "SubDataSheetName"propType = 10propVal = "[None]"rplpropValue = "[Auto]"intCount = 0For 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 IftagFromErrorHandling:Next iMyDB.CloseIf intCount > 0 Then    MsgBox "The " & propName & " value for " & intCount & " non-system tables has been updated to " & propVal & "."End IfExit SubtagError: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 tagFromErrorHandlingElse    MsgBox Err.Description & vbCrLf & vbCrLf & " in TurnOffSubDataSheets routine."End IfEnd Sub
  5. Skriv följande text i direktfönstret och tryck sedan på RETUR för att köra funktionen:

    TurnOffSubDataSheets

    Observera att om alla tabeller inte redan har uppdaterats efter en kort stund, visas en meddelanderuta som talar om att egenskapen UnderdatabladsNamn för < NumberOfTablesUpdated > icke-systemtabeller har uppdaterats till [none].

Mer information

Office Access 2007, tillgång 2003, Access 2002 och Access 2000 kan du Visa en tabell relaterade poster i ett underdatablad; den här funktionen är inte tillgänglig i Access 97. För att hantera relationerna mellan huvudmannen och relaterade tabeller kräver systemet ytterligare omkostnader som kan öka svarstiden, särskilt när en databas har ett stort antal länkade tabeller och ett stort antal relationer mellan tabeller. Huvudtabellen i en en-till-flera-relation (tabellen på "en"-sidan av ekvationen) kan ha egenskapen UnderdatabladsNamn inställd på [none], i vilket fall under datablad inte visas. Eller dess namn egenskap för underdatablad kan anges till namnet på en viss relaterad tabell eller till [Auto]. Om egenskapen är inställd på [Auto]kan du välja den relaterade tabell vars poster du vill se när du klickar på expanderingsindikatorn för en post i huvudtabellen. När du ställer in egenskapen på [Auto], kan detta minska prestanda märkbart, särskilt på äldre datorer, när databasen använder ett stort antal länkade tabeller. Det här problemet uppstår inte när alla tabeller finns i samma databas. Eftersom problemet är långsam, kan faktorer som processorhastighet och tillgängliga systemresurser orsaka en databas som fungerar korrekt på en dator för att utföra långsamt på en annan dator. Microsoft tillhandahåller programmeringsexempel endast för illustration, utan någon uttrycklig eller underförstådd garanti. Detta inkluderar, men är inte begränsat till, underförstådda garantier om säljbarhet eller lämplighet för ett visst ändamål. Den här artikeln förutsätter att du är bekant med programmeringsspråket som demonstreras och med de verktyg som används för att skapa och felsöka procedurer. Microsofts supporttekniker kan hjälpa till att förklara funktionaliteten i en viss procedur, men de kommer inte att ändra dessa exempel för att ge ytterligare funktioner eller konstruera procedurer som uppfyller dina specifika krav.

Behöver du mer hjälp?

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Microsoft Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×