Niska wydajność w tabelach połączonych w programie Access 2002, w programie Office Access 2003 i w pakiecie Office 2007

Nr błędu: 133539 (office10)

Wersja 2000 dla programu Microsoft Access w tym artykule zobacz 261000.Początkujący: wymaga znajomości interfejsu użytkownika na komputerach z pojedynczym użytkownikiem. Ten artykuł dotyczy tylko bazy danych programu Microsoft Access (. mdb).

Symptomy

Po otwarciu tabeli połączonej w programie Microsoft Access 2002, w programie Microsoft Office Access 2003. lub w programie Microsoft Office Access 2007, które mogą wyświetlać rekordy pokrewne w podarkuszu danych, proces trwa zauważalnie dłużej niż w przypadku korzystania z tej samej bazy danych w programie Microsoft Access 97.

Przyczyna

To zachowanie występuje, jeśli istnieje wiele tabel połączonych w bazie danych, która zawiera również wiele relacji, a tabela, którą otwierasz ma jego Nazwa podarkusza danych właściwość jest ustawiona na [Auto].

Rozwiązanie

Aby obejść ten problem, należy ustawić właściwość Nazwa podarkusza danych tabeli na [Brak]. Można to zrobić ręcznie lub przy użyciu kodu.

Ręczne ustawianie właściwości Nazwa podarkusza danych

Aby ręcznie ustawić właściwość Nazwa podarkusza danych , wykonaj następujące kroki. Uwaga Te kroki działają tylko w przypadku programu Access 2002.

  1. W bazie danych zaplecza Otwórz tabelę w widoku Projekt.

  2. W menu Widok kliknij polecenieWłaściwości.

  3. Ustaw właściwość Nazwa podarkusza danych na[Brak].

  4. Zapisz, a następnie zamknij tabelę.

Ustawienie właściwości Nazwa podarkusza danych dla wszystkich tabel przy użyciu kodu

Można użyć funkcji języka Visual Basic for Applications, aby automatycznie ustawić właściwość Nazwa podarkusza danych dla wszystkich tabel niesystemowych w bazie danych na [Brak]. Aby to zrobić, wykonaj następujące kroki:

  1. Otwórz bazę danych zaplecza.

  2. W oknie Baza danych kliknij przycisk moduły, a następnie kliknij przycisk Nowy.

  3. W menu Narzędzia kliknij polecenieodwołania. Upewnij się, że jest zaznaczone pole wyboru Biblioteka obiektów Microsoft DAO 3,6 , a następnie kliknij przycisk OK.

  4. Wpisz lub wklej następujący kod do nowego modułu.

    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. W oknie bezpośrednim wpisz następujący tekst, a następnie naciśnij przycisk ENTER, aby uruchomić funkcję:

    TurnOffSubDataSheets

    Należy zauważyć, że po krótkim czasie, jeśli wszystkie tabele nie są już aktualizowane, pojawi się okno komunikatu informujące, że właściwość SubdatasheetName dla < NumberOfTablesUpdated > tabele niesystemowe została zaktualizowana do [none].

Więcej informacji

Program Office Access 2007, dostęp 2003, dostęp 2002 i dostęp 2000 umożliwiają wyświetlanie rekordów pokrewnych tabeli w podarkuszu danych; Ta funkcja nie jest dostępna w programie Access 97. Aby zarządzać relacjami między głównymi i powiązanymi tabelami, system wymaga dodatkowego narzutu, który może wydłużyć czas odpowiedzi, szczególnie gdy baza danych ma dużą liczbę połączonych tabel i dużą liczbę relacji między tabelami. Główna tabela w relacji jeden-do-wielu (tabela po stronie "jeden" równania) może mieć jej właściwość Nazwa podarkusza danych[none], w którym to przypadku podarkusze danych nie są wyświetlane. Lub jego Nazwa podarkusza danych właściwości można ustawić nazwę konkretnej tabeli powiązanej lub [Auto]. Jeśli właściwość jest ustawiona na [Auto], można wybrać tabelę pokrewny, którego rekordy chcesz zobaczyć po kliknięciu przycisku Rozwiń wskaźnik rekordu w tabeli głównej. Po ustawieniu właściwości [Auto], może to zmniejszyć wydajność zauważalnie, szczególnie na starszych komputerach, gdy baza danych używa dużej liczby tabel połączonych. To zachowanie nie występuje, gdy wszystkie tabele są obecne w tej samej bazie danych. Ponieważ problem jest niska wydajność, czynniki, takie jak szybkość procesora i dostępne zasoby systemowe może spowodować bazy danych, który wykonuje odpowiednio na jednym komputerze, aby działać powoli na innym komputerze. Firma Microsoft podaje przykłady programowania tylko na ilustracji, bez gwarancji wyrażonej lub dorozumianej. Obejmuje to, ale nie ogranicza się do, dorozumianych gwarancji przydatności handlowej lub przydatności do określonego celu. W tym artykule założono, że znasz języka programowania, który jest demonstrowany i narzędzia, które są używane do tworzenia i debugowania procedur. Inżynierowie pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu funkcjonalności konkretnej procedury, ale nie będą modyfikować tych przykładów, aby zapewnić dodatkowe funkcje lub konstruować procedury spełniające określone wymagania.

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×