Jak zapobiec rozrostu bazy danych po użyciu obiektów DAO (Data Access)

Zakończono świadczenie pomocy technicznej dla pakietu Office 2003

Firma Microsoft zakończyła świadczenie pomocy technicznej dla pakietu Office 2003 8 kwietnia 2014. Ta zmiana wpłynęła na Twoje aktualizacje oprogramowania i opcje zabezpieczeń. Dowiedz się, co to oznacza dla Ciebie i jak zapewnić sobie kontynuację ochrony.

WAŻNE: Ten artykuł nie został przetłumaczony przez człowieka, tylko przez oprogramowanie do tłumaczenia maszynowego firmy Microsoft. Firma Microsoft oferuje zarówno artykuły tłumaczone przez ludzi, jak i artykuły tłumaczone maszynowo, dzięki czemu każdy użytkownik może uzyskać dostęp do całej zawartości bazy wiedzy Knowledge Base we własnym języku. Prosimy jednak pamiętać, że artykuły przetłumaczone maszynowo nie zawsze są doskonałe. Mogą zawierać błędy słownictwa, składni i gramatyki, przypominające błędy robione przez osoby, dla których język użytkownika nie jest językiem ojczystym. Firma Microsoft nie odpowiada za wszelkie nieścisłości, błędy lub szkody spowodowane nieprawidłowym tłumaczeniem zawartości oraz za wykorzystanie tej zawartości przez klientów. Oprogramowanie do tłumaczenia maszynowego jest często aktualizowane przez firmę Microsoft.

Anglojęzyczna wersja tego artykułu to:289562
Umiarkowany: Wymaga podstawowych makro, kodowania i interoperacyjności umiejętności.

Ten artykuł dotyczy tylko bazy danych programu Microsoft Access (.mdb).

Wersja dla programu Microsoft Access 2000 w tym artykule zobacz 209847.
Wersja dla programu Microsoft Access 97 tego artykułu zobacz 186311.
Symptomy
Baza danych Microsoft Access rozpoczął wybrzuszanie (lub wzrost szybko w rozmiarze) po zastosowaniu obiektów DAO (Data Access) do otwierania zestaw rekordów.
Przyczyna
Jeśli zwalnia pamięć zestawu rekordów przy każdym pętli przy użyciu kodu zestawu rekordów, może być skompilowana DAO przy użyciu więcej pamięci i Zwiększanie rozmiaru bazy danych.
Rozwiązanie
Aby zapobiec zajmowaniu zasobów niepotrzebne i zwiększenie rozmiar bazy danych, należy użyć Zamknij Metoda Zestaw rekordów obiektu jawnego zamknięcia pamięci w zestawie rekordów, gdy użytkownik nie jest już potrzebny zestaw rekordów.

Jeśli baza danych jest zwiększenie w wielkości ponieważ nie użyto Zamknij Metoda Zestaw rekordów Obiekt można zmniejszyć rozmiar bazy danych, uruchamiając Kompaktuj i napraw Narzędzie (na Narzędzia menu).
Więcej informacji
Podczas tworzenia Zestaw rekordów (lub QueryDef) obiektów w kodzie, jawnego zamknięcia obiektu podczas pracy Zakończono. Program Microsoft Access automatycznie zamyka. Zestaw rekordów i QueryDef obiekty w większości przypadków. Jednakże jeśli użytkownik jawnie Zamknij obiekt w kodzie, można uniknąć okazjonalnych wystąpień, kiedy obiekt pozostaje otwarta. W następujących krokach przedstawiono sposób użycia obiektów DAO do zamknięcia Zestaw rekordów lub QueryDef obiekt.
  1. Uruchom program Microsoft Access.
  2. Otwórz przykładową bazę danych Northwind.mdb.

    UWAGA: Microsoft Data Access używa przykładowy kod w tym artykule Obiekty. Aby ten kod działał poprawnie trzeba odwołać biblioteki Microsoft DAO 3.6 Object Library. Aby to zrobić, kliknij przycisk Odwołania na Narzędzia w Edytorze Visual Basic w menu i upewnij się, że Biblioteki obiektów Microsoft DAO 3.6 pole wyboru jest zaznaczone.

  3. Skopiuj poniższy kod do nowego modułu. Następujące Przykładowy kod otwiera i zamyka Zestaw rekordów i QueryDef obiekt i wyświetla zarówno Zestaw rekordów i QueryDef informacje w polach komunikatu.
    Option Compare DatabaseOption ExplicitSub subCloseObjects()    Dim db As DAO.Database    Dim rs As DAO.Recordset    Dim qd As DAO.QueryDef    Set db = CurrentDb    Set rs = db.OpenRecordset("Employees", dbOpenTable)    Set qd = db.QueryDefs("Invoices")    rs.MoveLast    'Move to the last record in the Recordset.    MsgBox "The Employees Recordset is open." & vbCrLf & _           "The last Employee ID is " & rs![EmployeeID] & "."    MsgBox "The Invoices query definition is open." & vbCrLf & _           "The first field in the query is " & qd.Fields(0).Name    'Explicitly close the Recordset and QueryDef objects.    rs.Close    qd.CloseEnd Sub					
  4. Uruchomienie procedury subCloseObjects.
duży większy wzrost wybrzuszanie bloated prb duży większy znacznie zwiększa ACC2002 ACC2003 ACC2007 kbnoOfficeAlertID

Ostrzeżenie: ten artykuł przetłumaczono automatycznie

Proprietà

ID articolo: 289562 - Ultima revisione: 09/17/2011 21:51:00 - Revisione: 3.0

Microsoft Office Access 2007, Microsoft Office Access 2003, Microsoft Access 2002 Standard Edition

  • kbprogramming kbvba kbprb kbmt KB289562 KbMtpl
Feedback