Performanță lentă pe tabelele legate în Access 2002, în Office Access 2003 și în Office 2007

Număr eroare: 133539 (Office10)

Pentru o versiune Microsoft Access 2000 a acestui articol, consultați 261000.Novice: necesită cunoștințe de interfața cu utilizatorul pe computerele cu un singur utilizator. Acest articol se aplică numai la o bază de date Microsoft Access (. mdb).

Simptome

Când deschideți un tabel legat în Microsoft Access 2002, în Microsoft Office Access 2003. sau în Microsoft Office Access 2007 care poate afișa înregistrări corelate într-o subfoaie de date, procesul durează considerabil mai mult decât dacă utilizați aceeași bază de date în Microsoft Access 97.

Cauză

Acest comportament se produce dacă există mai multe tabele legate într-o bază de date care conține, de asemenea, multe relații și tabelul pe care îl deschideți are proprietatea numelui subfoaie de date setată la [auto].

Rezolvare

Pentru a rezolva această problemă, setați proprietatea nume subfoaia de date a tabelului la [none]. Puteți face acest lucru manual sau prin utilizarea codului.

Setarea manuală a proprietății nume subfoaie de date

Pentru a seta manual proprietatea nume subfoaie de date , urmați acești pași. Notă Acești pași funcționează numai pe Access 2002.

  1. În baza de date back-end, deschideți un tabel în Vizualizare proiect.

  2. În meniul Vizualizare , faceți clic peProprietăți.

  3. Setați proprietatea nume subfoaie de date la[none].

  4. Salvați și apoi închideți tabelul.

Setarea proprietății nume subfoaie de date pentru toate tabelele utilizând codul

Aveți posibilitatea să utilizați o funcție Visual Basic for Applications pentru a seta automat proprietatea nume subfoaie de date pentru toate tabelele nonsystem dintr-o bază de date la [none]. Pentru aceasta, urmați acești pași:

  1. Deschideți baza de date back-end.

  2. În fereastra bază de date, faceți clic pe module, apoi faceți clic pe nou.

  3. În meniul Instrumente , faceți clic pereferințe. Asigurați-vă că este bifată caseta de selectare Microsoft DAO 3,6 obiect bibliotecă , și apoi faceți clic pe OK.

  4. Tastați sau lipiți următorul cod în modulul nou.

    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. În fereastra imediată, tastați următorul text, apoi apăsați ENTER pentru a executa funcția:

    TurnOffSubDataSheets

    Rețineți că după o perioadă scurtă de timp, dacă toate tabelele nu sunt deja actualizate, primiți o casetă de mesaj care vă spune că proprietatea SubdatasheetName pentru < Numberoftablesactualizat > tabele non-sistem a fost actualizat la [none].

Mai multe informații

Office Access 2007, Access 2003, Access 2002 și Access 2000 vă permit să vizualizați înregistrările corelate ale unui tabel într-o subfoaie de date; Această funcționalitate nu este disponibilă în Access 97. Pentru a gestiona relațiile dintre tabelele principale și cele corelate, sistemul necesită cheltuieli suplimentare care pot crește timpul de răspuns, în special atunci când o bază de date are un număr mare de tabele legate și un număr mare de relații între tabele. Tabelul principal dintr-o relație unu-la-mai-mulți (tabelul din partea "unu" a ecuației) poate avea proprietatea numelui subfoaie de date setată la [none], caz în care nu se afișează subfoi. Sau proprietatea numelui subfoaie de date poate fi setată la numele unei anumite tabele corelate sau la [auto]. Dacă proprietatea este setată la [auto], aveți posibilitatea să selectați tabelul corelat ale cărui înregistrări doriți să le vedeți când faceți clic pe indicatorul de Extindere al unei înregistrări din tabelul principal. Când setați proprietatea la [auto], aceasta poate reduce performanța vizibil, în special pe computerele mai vechi, atunci când baza de date utilizează un număr mare de tabele legate. Acest comportament nu se produce atunci când toate tabelele sunt prezente în aceeași bază de date. Deoarece problema este lent de performanță, factori, ar fi viteza procesorului și resursele de sistem disponibile poate provoca o bază acoperire de date care efectuează în mod corespunzător pe un computer pentru a efectua lent pe un alt computer. Microsoft oferă exemple de programare numai pentru ilustrare, fără garanție, explicite sau implicite. Aceasta include, dar nu se limitează la, garanțiile implicite de vandabilitate sau adecvare la un anumit scop. Acest articol presupune că sunteți familiarizat cu limbajul de programare care este în curs de demonstrat și cu instrumentele care sunt utilizate pentru a crea și de a depana proceduri. Inginerii de asistență Microsoft pot ajuta la explicarea funcționalității unei anumite proceduri, dar nu vor modifica aceste exemple pentru a oferi funcționalități suplimentare sau pentru a construi proceduri pentru a îndeplini cerințele dumneavoastră specifice.

Aveți nevoie de ajutor suplimentar?

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă la Microsoft Insider

V-a fost de ajutor această informație?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×