În funcție de configurația computerului dumneavoastră și de meniul de lucru, există câteva lucruri care se pot face pentru a îmbunătăți performanța Microsoft Access sau a bazei de date Microsoft Access (bază de date: O colecție de date relative la un anumit subiect sau scop. Într-o bază de date, informațiile despre o anumită entitate, cum ar fi un angajat sau o comandă, este aranjată în tabele, înregistrări și câmpuri.).
Dacă optimizați performanța unei baze de date Access, cel mai bun loc de început este cu Analizatorul de performanță. Se poate folosi Analizatorul de performanță pentru a analiza o bază de date întreagă sau doar obiectele selectate dintr-o bază de date. De asemenea, Analizatorul de performanță poate face câteva modificări propuse dacă se dorește.
Execuția Analizatorului de performanță
Aveți posibilitatea să utilizați Analizatorul de performanță pentru optimizarea performanței unei baze de date Microsoft Access (bază de date: O colecție de date relative la un anumit subiect sau scop. Într-o bază de date, informațiile despre o anumită entitate, cum ar fi un angajat sau o comandă, este aranjată în tabele, înregistrări și câmpuri.). Analizatorul de performanță nu este disponibil într-un proiect Access (proiect Microsoft Access: Un fișier Access care se conectează la o bază de date Microsoft SQL Server și se utilizează pentru a crea aplicații client/server. Un fișier proiect nu conține date sau obiecte bazate pe definiții de date, cum ar fi tabele și vizualizări.).
- Deschideți baza de date Access pentru care doriți optimizare.
- În meniul Instrumente, indicați spre Analiză, apoi faceți clic pe Performanță.
- Faceți clic pe fila pentru tipul de obiect al bazei de date (obiecte bază de date: O bază de date Access conține obiecte ca tabele, interogări, formulare, rapoarte, pagini, macrocomenzi și module. Un proiect Access conține obiecte ca formulare, rapoarte, pagini, macrocomenzi și module.) pentru care doriți optimizare. Faceți clic pe fila Toate tipurile de obiecte pentru vizualizarea unei liste cu toate obiectele bazei de date deodată.
- Selectați numele obiectelor bazei de date pentru care doriți optimizare. Faceți clic pe Selectare totală pentru a selecta toate obiectele bazei de date din listă.
- Repetați pașii 3 și 4 până la selectarea tuturor obiectelor pentru optimizare, și apoi faceți clic pe OK.
Analizatorul de performanță listează trei tipuri de rezultate de analiză: Recomandare, Sugestie, și Idee. Când faceți clic pe un element din lista Rezultate analiză, sunt afișate informații despre optimizarea propusă în caseta Note analiză aflată sub listă. Optimizările Sugestie conțin posibile tradeoffs de care trebuie ținut cont înainte de a fi efectuate. Pentru vizualizarea unei descrieri a tradeoffs, faceți clic pe o Sugestie din listă și apoi citiți informațiile din caseta Note analiză. Access poate efectua optimizările Recomandare și Sugestie în locul utilizatorului. Optimizarea Idee trebuie efectuată doar de utilizator.
- Faceți clic pe una sau mai multe optimizări Recomandare sau Sugestie pe care doriți să le efectuați, și apoi faceți clic pe Optimizare. Analizatorul de performanță va efectua optimizările și apoi le va marca Fixate. Continuați procesul până când Analizatorul de performanță a încheiat toate optimizările Recomandare și Sugestie pe care doriți să le efectuați.
Pentru a executa optimizările Recomandare și Sugestie, faceți clic pe Select All, iar apoi faceți clic pe Optimizare.
Pentru efectuarea unei optimizări Idee, faceți clic pe optimizare, și apoi urmați instrucțiunile afișate în caseta Note analiză.
Notă Analizatorul de performanță nu furnizează sugestii despre modul de îmbunătățire a performanței Microsoft Access sau a sistemului sub care lucrează.
Îmbunătățirea performanței Microsoft Access și a sistemului dumneavoastră
Următoarele indicații vă pot ajuta la optimizarea performanțelor Microsoft Access pe calculator:
- Dacă utilizați baze de date pe care alți utilizatori nu au nevoie să le partajeze, instalați Microsoft Access și toate bazele de date pe discul dumneavoastră fix în locul unui server din rețea.
- Dacă sunteți singura persoană care utilizează o bază de date, deschideți baza de date pentru utilizare exclusivă; în caseta de dialog Deschidere faceți clic pe săgeata de lângă butonul Deschidere, apoi faceți clic pe Deschidere exclusivă.
- Disponibilizați mai multă memorie închizând aplicațiile neutilizate.
- Măriți memoria RAM a computerului. Se recomandă 40 MB de memorie— 32 MB de memorie plus 8 MB pentru memorie suplimentară Microsoft Access.
- Nu utilizați memorie RAM pentru un disc RAM.
- Ștergeți periodic fișierele care nu mai sunt necesare și goliți Coșul de reciclare, compactați bazele de date, apoi defragmentați discul fix cu programul Defragmentare disc din Microsoft Windows. Pentru a rula programul Defragmentare disc faceți clic pe butonul Start din Windows, indicați spre Programe, indicați spre Accesorii, indicați spre Instrumente de sistem, apoi faceți clic pe Program Defragmentare disc.
- În cele mai multe cazuri setarea memoriei virtuale utilizată de Windows ar trebui să funcționeze optim. Cu toate acestea, în unele situații ajustarea parametrilor memoriei virtuale poate îmbunătăți performanțele. Dacă ați încercat deja ștergerea fișierelor nenecesare și încâ mai aveți probleme cu performanțele, încercați modificarea setării implicite a memoriei virtuale în următoarele cazuri:
- Nu aveți mult spațiu disc disponibil pe discul care este utilizat în prezent pentru memoria virtuală și este disponibil un alt disc local cu spațiu suficient.
- Un alt disc local este disponibil și este mai rapid decât discul curent (în afara cazului în care acel disc este utilizat intensiv).
În aceste cazuri ați obține performanțe mai bune specificând un disc diferit pentru memoria virtuală.
De asemenea ați obține performanțe mai bune specificând spațiul disc disponibil pentru memoria virtuală ca fiind 25 MB minus RAM disponibil. De exemplu, dacă aveți 12 MB de RAM pe calculator, ar trebui să precizați cel puțin 13 MB de memorie virtuală. Specificați mai mult dacă lucrați cu mai multe aplicații mari.
Pentru a modifica parametrii memoriei virtuale a Windows, în Panoul de control din Windows faceți dublu clic pe pictograma Sistem, faceți clic pe Opțiuni performanță din fila Complex, faceți clic pe butonul Modificare din secțiunea Memorie virtuală, apoi specificați un disc fix diferit sau introduceți o valoare în caseta Dimensiune inițială care este cel puțin egală cu 25 minus RAM disponibil.
- Dacă aveți un wallpaper (fundal pe întregul ecran) bitmap pe suprafața de lucru Windows, înlocuiți-l cu un bitmap culoare constantă sau model, sau fără nici un bitmap.
- Dacă utilizați un economizor de ecran, utilizați unul necompletat sau nu utilizați nici unul.
- Eliminați programele de compresie ale discului sau gândiți-vă la mutarea bazelor de date pe o unitate necomprimată.
- Pentru a asigura performanțe optime utilizați fonturi subsituite doar dacă aveți nevoie de suport fonturi duale pentru afișarea tuturor datelor.
Îmbunătățirea performanței tabelului
- Utilizați Analizatorul de performanță pentru analiza anumitor tabele în baza de date.
- Proiectați tabele fără date suplimentare. O bază de date bine proiectată este o condiție esențială pentru preluarea și actualizarea rapidă a datelor. Dacă tabele existente conțin date suplimentare, aveți posibilitatea utilizării Expertului Analizator de tabel pentru scindarea acestora în tabele în relație pentru memorarea mai eficientă a datelor.
- Alegeți tipurile de date (tip de date: Caracteristica unui câmp care determină ce tip de date poate conține. Tipurile de date includ Boolean, Întreg, Lung, Simbol monetar, cu simplă precizie, cu dublă precizie, Șir de caractere și Variant (implicit).) corespunzătoare pentru câmpuri; astfel se poate salva spațiu în baza de date și îmbunătăți operațiile de asociere (asociere: O unire dintre un câmp dintr-un tabel sau o interogare și un câmp conținând același tip de date din alt tabel sau interogare. Asocierile spun programului cum sunt legate datele. Înregistrările care nu sunt potrivite pot fi incluse sau excluse, în funcție de tipul de asociere.). La definirea unui câmp, alegeți cea mai mică dimensiune a tipului de date sau de câmp care corespunde datelor din câmp.
- Creați indexuri (index: Facilitate care accelerează căutarea și sortarea într-un tabel bazat pe valori cheie și poate impune unicitatea pentru rândurile dintr-un tabel. Cheia primară a unui tabel este automat indexată. Anumite câmpuri nu pot fi indexate datorită tipului lor de date.) pentru câmpurile pe care le sortați, uniți, sau pentru care stabiliți criterii. Aveți posibilitatea efectuării de îmbunătățiri substanțiale referitor la viteza interogării prin indexarea câmpurilor în ambele zone ale tipurilor de asociere, sau prin crearea unei relații (relație: Asociație care se stabilește între câmpurile (coloanele) a două tabele. Relația poate fi unu la unu, unu la mai mulți sau mulți la mai mulți.) între câmpurile respective și indexarea oricărui câmp utilizat la setarea criteriilor pentru interogare. Găsirea înregistrărilor prin intermediul casetei de dialog Găsire devine de asemenea mai rapidă dacă se efectuează căutarea într-un câmp indexat.
Totuși, indexurile nu reprezintă o soluție pentru toate situațiile. Indexurile cresc dimensiunea fișierului .mdb, reduc simultaneitatea (posibilitatea ca mai mulți utilizatori să modifice o pagină în același timp) în aplicații multiutilizator și scad performanța la actualizarea datelor în câmpuri indexate sau la adăugarea sau ștergerea înregistrărilor. Este de preferat să se efectueze un test pentru determinarea câmpurilor ce trebuie indexate. Adăugarea unui index poate accelera interogarea cu o secundă, dar poate încetini adăugarea unui rând de date cu două secunde și poate cauza probleme de blocare. Sau poate aduce câștiguri nesemnificative în funcție de câmpurile care sunt indexate. De exemplu, adăugarea unui index la un câmp CodPoștal poate furniza un câștig foarte redus al performanței dacă în tabel câmpurile NumeCompanie și NumeFamilie sunt deja indexate. Indiferent de tipurile de interogări create, trebuie indexate doar câmpurile care au numai valori unice.
- Într-un index după câmpuri multiple, utilizați doar atât de multe câmpuri câte sunt necesare în index.
Îmbunătățirea performanței tabelelor legate
Notă Aveți posibilitatea de a lega (legare (pentru tabele): O acțiune care stabilește o conexiune la datele din altă aplicație, astfel încât să fie posibilă vizualizarea și editarea datelor, atât în aplicația inițială cât și în Access.) un tabel numai într-o bază de date Microsoft Access (bază de date Microsoft Access: O colecție de date și obiecte (cum ar fi tabele, interogări sau formulare) care sunt grupate pe baza unui anumit subiect sau scop.), nu și într-un proiect Microsoft Access (proiect Microsoft Access: Un fișier Access care se conectează la o bază de date Microsoft SQL Server și se utilizează pentru a crea aplicații client/server. Un fișier proiect nu conține date sau obiecte bazate pe definiții de date, cum ar fi tabele și vizualizări.).
Deși este posibil să utilizați tabelele legate ca și cum ar fi tabele obișnuite din baza de date Microsoft Access, este important să rețineți că ele nu se află de fapt în baza de date Access. De fiecare dată când vizualizați datele dintr-un tabel legat, Microsoft Access trebuie să preia înregistrările din alt fișier. Această preluare poate dura ceva timp, în special dacă tabelul legat este în rețea sau într-o bază de date SQL (bază de date SQL: Bază de date care este bazată pe limbajul SQL - Limbaj structurat de interogare.).
Dacă utilizați un tabel legat într-o rețea sau într-o bază de date SQL, urmați aceste indicații pentru a obține rezultate bune:
- Aveți posibilitatea să îmbunătățiți mult funcționalitatea când deschideți baza de date principală, precum și tabelele și formularele impunând ca baza de date legată să rămână deschisă. Pentru aceasta, creați un tabel necompletat în baza de date legată și legați tabelul la baza de date principală. Apoi utilizați metoda OpenRecordset pentru a deschide tabelul legat. Acest fapt împiedică motorul bază de date Microsoft Jet să închidă și să deschidă în mod repetat baza de date legată și să creeze și să șteargă de fiecare dată fișierul .ldb asociat.
- Vizualizați numai datele de care aveți nevoie. Nu vă deplasați printre pagini în foaia de date, dacă nu este necesar. Evitați saltul la ultima înregistrare dintr-un tabel mare. Dacă doriți să adăugați noi înregistrări la un tabel mare, utilizați comanda Intrare date din meniul Înregistrări pentru a evita încărcarea înregistrărilor existente în memorie.
- Utilizați filtre sau interogări pentru a limita numărul de înregistrări pe care le vizualizați într-un formular sau într-o foaie de date. Astfel, Microsoft Access transferă mai puține date prin rețea.
- În interogări care implică tabele legate, evitați utilizarea funcțiilor în criteriile de interogare. În special, evitați utilizarea funcțiilor agregate de domeniu (funcție agregată de domeniu: O funcție, cum ar fi DAvg sau DMax, care se utilizează pentru a calcula statistici pentru un set de înregistrări (un domeniu).), cum ar fi Dsum, oriunde în interogări. Când utilizați o funcție agregată de domeniu, Microsoft Access preia toate datele din tabelul legat pentru a executa interogarea.
- Dacă adăugați frecvent înregistrări unui tabel legat, creați un formular pentru adăugarea de înregistrări care să aibă proprietatea Intrare date setată la Da. Când deschideți formularul pentru a introduce noi date, Microsoft Access nu afișează nici una dintre înregistrările existente. Această setare a proprietății economisește timp pentru că Microsoft Access nu mai trebuie să preia înregistrările din tabelul legat.
- Amintiți-vă că și alți utilizatori pot încerca să utilizeze un tabel extern timp ce vă aflați în el. Când o bază de date Microsoft Access este în rețea, evitați blocarea înregistrărilor mai mult timp decât este necesar.
Îmbunătățirea performanței tabelelor legate de SQL server
Dacă datele din aplicația front-end/back-end (aplicații front-end/back-end: Aplicație de bază de date constând dintr-un fișier bază de date „back-end” care conține tabele și copii ale unui fișier bază de date „front-end” care conține toate celelalte obiecte de bază de date cu legături la tabelele „back-end”.) constau doar din tabele Microsoft SQL Server, aveți posibilitatea să utilizați fie un proiect Microsoft Access fie o bază de date Microsoft Access drept componentă front end a aplicației. Cu toate acestea, utilizând un proiect Access veți beneficia de avantajele proiectelor cum ar fi un număr mai mare de tabele și o domensiune mai mare a bazei de date. Dacă doriți ca datele din aplicația front-end/back-end să constea în tabele Microsoft Access și tabele Microsoft SQL server, trebuie să utilizați o bază de date Access drept front end.
Dacă vă conectați la un tabel dintr-o bază de date SQL externă, aveți posibilitatea de a obține cele mai bune rezultate prin legarea (legare (pentru tabele): O acțiune care stabilește o conexiune la datele din altă aplicație, astfel încât să fie posibilă vizualizarea și editarea datelor, atât în aplicația inițială cât și în Access.) la tabele SQL în loc de a deschide direct tabelele. Aveți posibilitatea să deschideți tabele SQL externe în mod direct doar utilizând cod Microsoft Visual Basic. Tabelele legate sunt în mod considerabil mai rapide, mai puternice și mai eficiente decât cele deschise în mod direct.
Sfaturi performanță suplimentare
- Preluați doar datele necesare. Proiectați-vă interogările pentru a limita numărul înregistrărilor preluate și selectați doar câmpurile necesare astfel încât Microsoft Access să transfere cât mai puține date prin rețea.
- Nu utilizați seturi de rezultate actualizabile (dinamice) dacă nu preluați multe înregistrări și dacă nu actualizați datele și dacă nu aveți nevoie să vedeți modificările aduse de alți utilizatori. Pentru a preveni seturile rezultat de la a fi actualizate într-un formular, setați proprietatea RecordSetType a formularului cu valoarea Snapshot. Instantaneele sunt mai rapide la deschidere și la defilare decât seturile dinamice.
- Dacă nu aveți nevoie să preluați un număr mare de înregistrări, un set dinamic este mai rapid și mai eficient decât un instantaneu. De exemplu mutarea la sfârșitul unui instantaneu solicită ca întreg setul rezultat să fie descărcat pe calculatorul local, dar cu un set dinamic doar ultimul ecran de date este adus pe calculatorul local. În plus, cel mai rapid mod de a adăuga înregistrări noi la un tabel, formular sau interogare este de a face clic pe Intrare date în meniul Înregistrări. (Intrare date nu este disponibilă dacă proprietatea RecordsetType este setată cu valoarea Snapshot).
- Utilizarea memoriei cache. Dacă veți reutiliza cele mai recente date de pe server în timpul rulării aplicației, este mai rapid să preluați un singur bloc mare de date (mult rânduri) și să îl stocați într-un cache decât să preluați multe rânduri individuale. Formularele și foile de date Microsoft Access utilizează cache în mod automat. Dacă preluați date utilizând un obiect Recordset creat în Microsoft Visual Basic, aveți posibilitatea să utilizați proprietatea CacheSize pentru a preciza câte înregistrări să fie preluate odată în memoria locală.
- Pentru interogări actualizare masivă pe surse de date ODBC, optimizați performanțele serverului setând proprietatea FailOnError cu valoarea Yes.
- Evitați utilizarea interogărilor care au ca efect procesările pe calculatorul client local. La accesarea datelor externe, motorul bază de date Jet procesează datele local doar când operația nu poate fi executată de serverul bază de date extern. Operațiile interogare executate local (așa cum sunt definite de comenzile SQL utilizate pentru a le implementa) includ:
Îmbunătățirea performanței într-un mediu multiutilizator
Îmbunătățirea performanței interogării
Baze de date, tabele și indexuri
- Compactați baza de date. Compactarea poate să sporească viteza interogărilor deoarece ea reorganizează înregistrările unui tabel, astfel încât acestea să se afle în pagini adiacente ale bazei de date, ordonate după cheia primară (cheie primară: Unul sau mai multe câmpuri (coloane) ale căror valori identifică în mod unic fiecare înregistrare din tabel. O cheie primară nu permite valori Null și trebuie să aibă întotdeauna un index unic. Cheia primară este utilizată pentru a corela un tabel la cheile străine din alte tabele..) a tabelului. Acest fapt va spori eficiența scanărilor secvențiale ale înregistrărilor tabelului, deoarece va trebui citit un număr minim de pagini din baza de date pentru a regăsi toate înregistrările. După compactarea bazei de date, executați fiecare interogare pentru a o compila cu ajutorul statisticilor tabelului actualizat.
- Indexați (index: Facilitate care accelerează căutarea și sortarea într-un tabel bazat pe valori cheie și poate impune unicitatea pentru rândurile dintr-un tabel. Cheia primară a unui tabel este automat indexată. Anumite câmpuri nu pot fi indexate datorită tipului lor de date.) orice câmp utilizat pentru stabilirea de criterii (criterii: Condiții specificate pentru a limita înregistrările incluse în setul de rezultate a unei interogări sau filtrări.) pentru interogare și indexați câmpurile aflate de ambele părți ale unei asocieri (asociere: O unire dintre un câmp dintr-un tabel sau o interogare și un câmp conținând același tip de date din alt tabel sau interogare. Asocierile spun programului cum sunt legate datele. Înregistrările care nu sunt potrivite pot fi incluse sau excluse, în funcție de tipul de asociere.), sau creați o relație (relație: Asociație care se stabilește între câmpurile (coloanele) a două tabele. Relația poate fi unu la unu, unu la mai mulți sau mulți la mai mulți.) între aceste câmpuri. Atunci când creați relații, Microsoft Jet Database Engine (Microsoft Jet Database Engine: Parte a sistemului de baze de date Access care preia și stochează datele din bazele de date ale utilizatorilor și ale sistemului. Este un fel de manager de date pe care sunt construite sisteme de baze de date, ca Access.) creează un index pentru cheia externă (cheie străină: Unul sau mai multe câmpuri dintr-un tabel care referă câmpul sau câmpurile în cheie primară dintr-un alt tabel. Cheia străină precizează modul de corelare al tabelelor.) dacă nu există deja una, în caz contrar, va utiliza indexul existent.
Motorul Jet optimizează automat o interogare care asociază un tabel Microsoft Access din unitatea de disc locală și un tabel server ODBC (Open Database Connectivity (ODBC): O metodă standard de partajare a datelor între bazele de date și programe. Driverele ODBC utilizează standardul Structured Query Language (SQL) pentru a obține acces la datele exterioare.), dacă tabelul Access este mic și câmpurile asociate sunt indexate. În acest caz, Access sporește eficiența, cerând numai înregistrările necesare de la server. Asigurați-vă că tabelele pe care le asociați din surse diferite sunt indexate după câmpurile de asociere.
- Indexați câmpurile utilizate pentru sortare.
- Utilizați operatorii Between...And, In, și = cu câmpurile indexate.
Câmpuri, calcule și criterii
- Atunci când definiți un câmp într-un tabel, alegeți cel mai mic tip de date (tip de date: Caracteristica unui câmp care determină ce tip de date poate conține. Tipurile de date includ Boolean, Întreg, Lung, Simbol monetar, cu simplă precizie, cu dublă precizie, Șir de caractere și Variant (implicit).) adecvat pentru datele din câmp. De asemenea, dați câmpurilor pe care le veți utiliza în asocieri (asociere: O unire dintre un câmp dintr-un tabel sau o interogare și un câmp conținând același tip de date din alt tabel sau interogare. Asocierile spun programului cum sunt legate datele. Înregistrările care nu sunt potrivite pot fi incluse sau excluse, în funcție de tipul de asociere.) aceleași tipuri sau tipuri compatibile, cum ar fi AutoNumerotare și Număr (dacă proprietatea Dimensiune câmp este setată la Întreg lung).
- Când creați o interogare, adăugați numai câmpurile de care aveți nevoie. În câmpurile utilizate pentru stabilirea de criterii (criterii: Condiții specificate pentru a limita înregistrările incluse în setul de rezultate a unei interogări sau filtrări.), deselectați caseta Afișare dacă nu doriți să afișați aceste câmpuri.
- Dacă utilizați criterii pentru a restricționa valorile dintr-un câmp utilizat într-o asociere între tabele având o relație unu la mai mulți (relație unu-la-mai-mulți: Asociație între două tabele în care valoarea cheie primară a fiecărei înregistrări din tabelul primar corespunde valorii din câmpul sau câmpurile corespunzătoare a mai multor înregistrări din tabelul corelat.), testați dacă interogarea se execută mai rapid cu criteriul plasat în partea „unu” a asocierii sau în partea „mai mulți”. În unele interogări, veți obține performanțe mai rapide dacă adăugați criteriile la câmpul aflat în partea „unu” a unei asocieri și nu în partea „mai mulți”.
- Evitați câmpurile calculate (câmp calculat: Un câmp, definit într-o interogare, care afișează rezultatul unei expresii și nu afișează date stocate. Valoarea se recalculează de fiecare dată când se modifică o valoare din expresie.) în subinterogări subinterogare: O instrucțiune SQL SELECT care se află în interiorul altei interogări de selectare sau de acțiune.. Dacă adăugați o interogare care conține un câmp calculat la o altă interogare, este posibil ca expresia (expresie: Orice combinație de operatori matematici sau logici, constante, funcții și nume de câmpuri, controale și proprietăți evaluate ca valoare unică. Expresiile efectuează calcule, manipulează caractere sau testează date.) din câmpul calculat să încetinească viteza din interogarea principală. În exemplul de mai jos, interogarea Q1 este utilizată ca intrare pentru interogarea Q2:
Q1: SELECT IIF([MyColumn]="Yes","Order Confirmed","Order Not Confirmed") AS X FROM MyTable;
Q2: SELECT * FROM Q1 WHERE X="Order Confirmed";
Deoarece expresia IIf din Q1 nu poate fi optimizată, Q2 nu poate fi, de asemenea, optimizată. Dacă o expresie imposibil de optimizat este imbricată într-o subinterogare, întreaga interogare este imposibil de optimizat.
O metodă alternativă de a construi interogarea este:
Q1: SELECT * FROM MyTable WHERE MyColumn = "Yes";
- Dacă expresiile sunt necesare la ieșire, încercați să le plasați într-un control (control: Un obiect grafic al interfeței cu utilizatorul, cum ar fi o casetă text, o casetă de selectare, o bară de defilare sau un buton de comandă, care permit utilizatorului să controleze programul. Controalele sunt utilizate pentru a afișa date sau opțiuni, a executa o acțiune sau a face interfața cu utilizatorul mai ușor de citit.) dintr-un formular sau raport. De exemplu, ar fi posibil să modificați interogarea precedentă într-o interogare cu parametri care solicită valoarea coloanei ColoanaPersonală, iar apoi construiți un formular sau raport bazat pe această interogare. În formular sau raport, aveți apoi posibilitatea să adăugași un control calculat (control calculat: Control care se utilizează într-un formular, raport sau într-o pagină de acces la date pentru a afișa rezultatul unei expresii. Rezultatul este recalculat de fiecare dată când se efectuează o modificare a vreuneia dintre valorile pe care se bazează expresia.) care afișează „Comandă confirmată” sau „Comandă neconfirmată”, în funcție de valoarea din coloana ColoanaPersonală.
Construiți interogarea ca mai jos:
PARAMETERS [Pentru a vedea comenzile confirmate, introduceți Da. Pentru a vedea comenzile neconfirmate, introduceți Nu.] Text;
SELECT *
FROM MyTable
WHERE MyColumn = [Pentru a vedea comenzile confirmate, introduceți Da. Pentru a vedea comenzile neconfirmate, introduceți Nu.];
În controlul calculat din formular sau raport, introduceți:
=IIF([MyColumn]="Yes","Order Confirmed","Order Not Confirmed")
- Atunci când grupați înregistrări după valorile dintr-un câmp de asociere, specificați Grupare după pentru câmpul care se află în același câmp ca și câmpul pe care îl totalizați (pentru care calculați o funcție agregată (funcție agregată: O funcție, cum ar fi Sum, Count, Avg, or Var, utilizată pentru calcularea totalurilor.)). De exemplu, dacă creați o interogare care totalizează câmpul Cantitate din tabelul Detalii comenzi și grupează după IDComandă, este recomandabil să specificați Grupare după pentru câmpul IDComandă din tabelul Detalii comenzi. Dacă specificați Grupare după pentru câmpul IDComandă din tabelul Comenzi, Microsoft Access va fi nevoit să asocieze toate înregistrările mai întâi și apoi să efectueze funcția agregată, în loc să efectueze funcția agregată și apoi să asocieze numai câmpurile necesare.
Pentru o viteză mai mare, utilizați Grupare după pentru cât mai puține câmpuri posibil. Ca o alternativă, utilizați funcția First unde corespunde.
Dacă o interogare de total conține o asociere, este recomandabil să grupați înregistrările într-o interogare și să adăugați această interogare la o interogare separată care va efectua asocierea. Acest fapt sporește eficiența anumitor interogări.
Expresii și optimizarea Rushmore
Generalități despre optimizarea Rushmore
Microsoft Access are posibilitatea să optimizeze expresii (expresie: Orice combinație de operatori matematici sau logici, constante, funcții și nume de câmpuri, controale și proprietăți evaluate ca valoare unică. Expresiile efectuează calcule, manipulează caractere sau testează date.) simple sau complexe din rândul Criteriu al grilei de proiect (grilă de proiect: Grilă utilizată pentru proiectarea unei interogări sau filtru în vizualizare proiect sau în fereastra Filtrare/sortare complexă. Pentru interogări, această grilă a fost anterior cunoscută ca grilă QBE.) a interogării, sau dintr-o clauză WHERE a unei instrucțiuni SQL SELECT. Pentru anumite tipuri de expresii complexe, este posibil ca Access să utilizeze Rushmore, o tehnologie de acces la date utilizată de Microsoft Jet Database Engine (Microsoft Jet Database Engine: Parte a sistemului de baze de date Access care preia și stochează datele din bazele de date ale utilizatorilor și ale sistemului. Este un fel de manager de date pe care sunt construite sisteme de baze de date, ca Access.), pentru a atinge un nivel mai ridicat de optimizare. În plus, funcția Count este bine optimizată pentru interogările care utilizează Rushmore.
Interogările Rushmore funcționează cu tabelele Access, ca și cu tabelele Microsoft FoxPro sau dBASE (fișiere .dbf). Nu este posibilă utilizarea Rushmore împreună cu surse de date ODBC (Sursă de date ODBC: Datele și informațiile necesare pentru a accesa datele din programe și baze de date care acceptă protocolul ODBC (Open Database Connectivity).), atâta timp cât Access transmite aceste interogări către sursa de date ODBC și nu le procesează local.
Expresii simple optimizabile
Este posibil ca o expresie (expresie: Orice combinație de operatori matematici sau logici, constante, funcții și nume de câmpuri, controale și proprietăți evaluate ca valoare unică. Expresiile efectuează calcule, manipulează caractere sau testează date.) simplă optimizabilă să formeze o expresie întreagă sau numai o parte dintr-o expresie. O expresie simplă optimizabilă are una dintre următoarele forme:
CâmpIndexat OperatorComparație Expresie
[Order Date] = #09/15/96#
sau
Expresie OperatorComparație CâmpIndexat
#11/1/96# < [HireDate]
Într-o expresie simplă optimizabilă:
- CâmpIndexat este fie un câmp care are propriul său index (index: Facilitate care accelerează căutarea și sortarea într-un tabel bazat pe valori cheie și poate impune unicitatea pentru rândurile dintr-un tabel. Cheia primară a unui tabel este automat indexată. Anumite câmpuri nu pot fi indexate datorită tipului lor de date.) sau un câmp care este primul câmp dintr-un index multiplu.
- OperatorComparație trebuie să fie unul dintre următorii: <, >, =, <=, >=, <>, Between…And, Like, In.
- Expresie poate fi orice expresie validă, printre care constante, funcții, sau câmpuri din alte tabele.
Dacă ați creat indexuri pentru câmpurile Nume, Vârstă și DatăAngajare din tabelul Angajați, următoarele expresii sunt optimizabile simple:
[LastName] = "Smith"
[Age] >= 21
#12/30/90# < [HireDate]
Employees.[LastName] = Customers.[LastName]
[LastName] In ("Smith", "Johnson", "Jones")
[Age] Between 18 And 65
Expresii complexe
O expresie (expresie: Orice combinație de operatori matematici sau logici, constante, funcții și nume de câmpuri, controale și proprietăți evaluate ca valoare unică. Expresiile efectuează calcule, manipulează caractere sau testează date.) complexă este creată prin combinarea a două expresii simple cu operatorul And sau Or. O expresie complexă are una dintre formele:
ExpresieSimplă And ExpresieSimplă
sau
ExpresieSimplă Or ExpresieSimplă
O expresie complexă este deplin sau parțial optimizabilă, în funcție de operatorul utilizat pentru a combina expresiile simple și dacă una sau ambele expresii simple sunt optimizabile. O expresie complexă este optimizabilă Rushmore dacă toate cele trei condiții care urmează sunt adevărate:
Notă Aveți posibilitatea să optimizați indexuri multiple, dacă interogați câmpurile indexate în ordinea în care acestea apar în fereastra Indexuri (Fereastra indexuri: Într-o bază de date Access, fereastra în care se vizualizează sau se editează indexurile unui tabel, sau în care se pot crea indexuri pentru câmpuri multiple.), începând cu primul câmp indexat și continuând cu câmpurile adiacente (până la 10 câmpuri, inclusiv). De exemplu, dacă aveți un index multiplu care conține câmpurile NumeFamilie și Prenume, aveți posibilitatea să optimizați o interogare asupra câmpului NumeFamilie sau NumeFamilie și Prenume, dar o interogare asupra FirstName nu poate fi optimizată.
Următoarele combinații diferite de expresii simple din criteriul de interogare indică nivelul de optimizare al interogării.
Interogare deplin optimizabilă (cu Rushmore)
- (expresie optimizabilă) And (expresie optimizabilă)
- (expresie optimizabilă) Or (expresie optimizabilă)
Rezultatele interogării sunt parțial optimizabile (fără Rushmore)
- (expresie optimizabilă) And (not expresie optimizabilă)
Rezultatele interogării nu sunt optimizabile
- (not expresie optimizabilă) And (not expresie optimizabilă)
- (not expresie optimizabilă) Or (not expresie optimizabilă)
- Not (expresie optimizabilă)
- Not (not expresie optimizabilă)
De asemenea, aveți posibilitatea să utilizați paranteze pentru a grupa combinații de expresii simple. Regulile precedente se aplică, de asemenea, combinațiilor de expresii grupate între paranteze.
Odată ce ați combinat expresii simple optimizabile în expresii complexe, aceste expresii complexe, la rândul lor, pot fi combinate pentru a forma expresii și mai complexe, care sunt probabil optimizabile, conform regulilor precedente.
Aceste exemple presupun că ați creat indexuri pentru câmpurile NumeFamilie și DataAngajare (expresiile simple care le utilizează sunt optimizabile) dar nu și pentru câmpurile InitialaMedie sau Prenume (expresiile simple care care le utilizează nu sunt optimizabile). Următoarele exemple de expresii simple combinate arată până unde este posibilă optimizarea rezultatelor.
Interogare deplin optimizabilă (cu Rushmore)
[LastName] = "Smith" And [Hire Date] < #12/30/90#
[LastName] = "Smith" Or [Hire Date] < #12/30/90#
Rezultatele interogării sunt parțial optimizabile (fără Rushmore)
[LastName] = "Smith" And [MiddleInitial] = "C"
[FirstName] = "Terry" And [MiddleInitial] = "C"
Rezultatele interogării nu sunt optimizabile
[LastName] = "Smith" Or [MiddleInitial] = "C"
[FirstName] = "Terry" Or [MiddleInitial]= "C"
Sugestii generale
- Dacă proprietatea Sursă înregistrări a unui formular sau raport este setată la o instrucțiune SQL (șir de caractere/instrucțiune SQL: O expresie care definește o comandă SQL, cum ar fi SELECT, UPDATE sau DELETE, conținând clauze cum ar fi WHERE sau ORDER BY. Șirurile de caractere/instrucțiunile SQL se utilizează de obicei în interogări și în funcțiile agregate.), salvați instrucțiunea SQL ca interogare, apoi setați proprietatea Sursă înregistrări la numele respectivei interogări.
- Pentru interogări de actualizare brute din surse de date ODBC (Sursă de date ODBC: Datele și informațiile necesare pentru a accesa datele din programe și baze de date care acceptă protocolul ODBC (Open Database Connectivity).), optimizați performanțele serverului, setând proprietatea Eșec la eroare la Da.
- Dacă datele nu se modifică frecvent, utilizați interogări de tip creare tabel (interogare de tip creare tabel: O interogare (instrucțiune SQL) care creează un nou tabel și apoi creează înregistrări (rânduri) în acel tabel prin copierea înregistrărilor dintr-un tabel sau dintr-o interogare existente.) pentru a crea tabele pornind de la rezultatele interogării. Utilizați tabelele rezultate și nu interogările ca bază pentru formulare, rapoarte sau alte interogări și asigurați-vă că adăugați indexuri (index: Facilitate care accelerează căutarea și sortarea într-un tabel bazat pe valori cheie și poate impune unicitatea pentru rândurile dintr-un tabel. Cheia primară a unui tabel este automat indexată. Anumite câmpuri nu pot fi indexate datorită tipului lor de date.) potrivit recomandărilor indicate aici.
- Evitați utilizarea funcțiilor agregate de domeniu (funcție agregată de domeniu: O funcție, cum ar fi DAvg sau DMax, care se utilizează pentru a calcula statistici pentru un set de înregistrări (un domeniu).), cum ar fi funcția DLookup, pentru a accesa date dintr-un tabel care nu se află în interogare. Funcțiile agregate de domeniu sunt specifice pentru Microsoft Access, ceea ce înseamnă că Microsoft Jet Database Engine (Microsoft Jet Database Engine: Parte a sistemului de baze de date Access care preia și stochează datele din bazele de date ale utilizatorilor și ale sistemului. Este un fel de manager de date pe care sunt construite sisteme de baze de date, ca Access.) nu are posibilitatea să optimizeze interogările care le utilizează. În schimb, adăugați la interogare tabelul pe care îl accesa funcția, sau creați o subinterogare subinterogare: O instrucțiune SQL SELECT care se află în interiorul altei interogări de selectare sau de acțiune..
- Dacă creați o interogare tabel încrucișat (interogare de tip tabel încrucișat: Interogare care calculează o sumă, o medie, contorizează sau alte tipuri de totaluri cu înregistrările, apoi grupează rezultatele după două tipuri de informații: unul în jos în partea stângă a foii de date și altul de-a lungul părții de sus.), utilizați întotdeauna când este posibil anteturi de coloană fixate.
Îmbunătățirea performanței filtrului
Dacă listele din câmpurile din fereastra Filtrare după formular (Filtru după formular: Tehnică de filtrare a datelor care utilizează o versiune a formularului sau foii de date curente cu câmpuri vide în care se tastează valorile care să fie conținute în înregistrările filtrate.) sunt afișate într-un interval de timp prea mare sau dacă nu afișează valorile din tabelul de bază, aveți posibilitatea de a modifica performanța filtrării după formular pentru toate tabelele, interogările și formularele sau de a modifica performanța pentru un anume formular. În ambele cazuri, aveți posibilitatea de a împiedica afișarea în liste a valorilor câmpurilor din tabelul de bază, de a afișa în listă valorile de câmp pentru anumite tipuri de câmpuri indexate (index: Facilitate care accelerează căutarea și sortarea într-un tabel bazat pe valori cheie și poate impune unicitatea pentru rândurile dintr-un tabel. Cheia primară a unui tabel este automat indexată. Anumite câmpuri nu pot fi indexate datorită tipului lor de date.) sau neindexate sau de a modifica limita de înregistrări care determină dacă lista afișează valorile unui câmp.
Îmbunătățirea performanței filtrării după formular pentru toate tabelele, interogările și formularele bazei de date
Aceste setări afectează toate tabelele și interogările și toate controalele (control: Un obiect grafic al interfeței cu utilizatorul, cum ar fi o casetă text, o casetă de selectare, o bară de defilare sau un buton de comandă, care permit utilizatorului să controleze programul. Controalele sunt utilizate pentru a afișa date sau opțiuni, a executa o acțiune sau a face interfața cu utilizatorul mai ușor de citit.) casetă text a căror proprietate FiltruCăutare este setată ca Valoarea implicită a bazei de date.
- În meniul Instrumente, faceți clic pe Opțiuni.
- Faceți clic pe fila Editare/Căutare și apoi setați Setare implicită filtru după formular în concordanță cu performanța dorită.
- Dacă afișarea listei de valori durează prea mult doar pentru câmpurile neindexate, încercați limitarea listelor la câmpurile indexate. Aveți posibilitatea de a efectua acest lucru prin golirea casetelor de selectare Câmpuri locale neindexate și Câmpuri ODBC. Dacă afișarea listelor durează prea mult pentru câmpurile indexate, goliți și caseta de selectare Câmpuri locale indexate, deoarece sunt prea multe înregistrări în indexuri pentru ca listele să fie afișate rapid.
Notă Dacă utilizați același câmp neindexat în mod repetat, luați în considerare indexarea lui pentru a îmbunătăți filtrarea și alte operații de căutare pentru acel câmp.
- Dacă listele nu afișează valorile din câmpurile indexate sau neindexate, verificați Afișare listă de valori în pentru a vă asigura că sunt selectate casetele corespunzătoare sau încercați să creșteți numărul din caseta Nu se afișează liste în care numărul înregistrărilor citite depășește astfel încât să fie mai mare ca sau egal cu numărul maxim de înregistrări din orice câmp neindexat din tabelul de bază.
Îmbunătățirea performanței filtrării după formular pentru un anume formular
Pentru fiecare control (control: Un obiect grafic al interfeței cu utilizatorul, cum ar fi o casetă text, o casetă de selectare, o bară de defilare sau un buton de comandă, care permit utilizatorului să controleze programul. Controalele sunt utilizate pentru a afișa date sau opțiuni, a executa o acțiune sau a face interfața cu utilizatorul mai ușor de citit.) casetă text dintr-un formular, aveți posibilitatea de a preciza dacă valorile stocate în câmp apar în lista sa din fereastra Filtrare după formular.
- Deschideți un formular în vizualizare proiect (Vizualizare proiect: O vizualizare care afișează proiectul următoarelor obiecte de bază de date: tabele, interogări, formule, rapoarte și macrocomenzi. În Vizualizare proiect se pot crea obiecte de bază de date noi și se poate modifica proiectul obiectelor existente.).
- Afișați foaia de proprietăți pentru orice control casetă text.
Cum?
- Deschideți un tabel, o interogare, un formular, un raport sau o pagină de acces la date (pagină de acces date: O pagină Web, publicată din Acces, care are o conexiune la o bază de date. Într-o pagină de acces date se vizualizează, se adăugă, se editează și se manipulează datele stocate în baza de date. Este posibil ca o pagină să conțină, de asemenea, date din alte surse, cum ar fi Excel.) în Vizualizare proiect (Vizualizare proiect: O vizualizare care afișează proiectul următoarelor obiecte de bază de date: tabele, interogări, formule, rapoarte și macrocomenzi. În Vizualizare proiect se pot crea obiecte de bază de date noi și se poate modifica proiectul obiectelor existente.).
- Se deschide foaia de proprietăți optând pentru una din următoarele variante:
Selector de formular sau raport
Selector de secțiune
- Pentru o secțiune a unei pagini de acces la date, se face dublu clic pe bara secțiunii.
Bara de secțiune
- Pentru a seta proprietățile unui câmp al interogării, se face clic pe celulă în rândul Câmp, iar apoi se face clic pe Proprietăți
de pe bara de instrumente.
- Pentru a seta proprietățile unei liste de câmpuri a interogării, se face clic oriunde în listă, iar apoi se face clic pe Proprietăți
de pe bara de instrumente.
- Pentru a seta proprietățile pentru corpul unei pagini de acces la date, se face clic deasupra primei secțiuni, iar apoi se face clic pe Proprietăți
de pe bara de instrumente.
- Pentru a seta proprietățile pentru un control (control: Un obiect grafic al interfeței cu utilizatorul, cum ar fi o casetă text, o casetă de selectare, o bară de defilare sau un buton de comandă, care permit utilizatorului să controleze programul. Controalele sunt utilizate pentru a afișa date sau opțiuni, a executa o acțiune sau a face interfața cu utilizatorul mai ușor de citit.), se face clic pe control, iar apoi se face clic pe Proprietăți
de pe bara de instrumente.
- În foaia de proprietăți, faceți clic pe proprietatea pe care doriți să o setați, iar apoi optați pentru una din următoarele variante:
Sfaturi
- Pentru a obține Ajutor pentru orice proprietate din caseta de proprietăți, se face clic pe proprietate și apoi se apasă F1.
- Dacă este necesar mai mult spațiu pentru a introduce sau edita o setare a unei proprietăți, se apasă SHIFT+F2 pentru a deschide caseta Panoramare.
Notă Dacă proprietatea SePermitModificăriProiect a unui formular este setată la Toate Vizualizările, se pot seta de asemenea proprietățile formularului în Vizualizare formular (Vizualizare formular: Vizualizare în care se afișează un formular pentru prezentarea sau acceptarea datelor. Vizualizarea formular este principalul mijloc de adăugare și modificare a datelor în tabele. În această vizualizare este posibilă și modificarea proiectului unui formular.) și Vizualizare foaie de date (Vizualizare foaie de date: O vizualizare care afișează datele dintr-un tabel, formular, interogare, vizualizare sau procedură stocată în format rânduri și coloane. În vizualizare foaie de date se pot edita câmpuri, adăuga și șterge date și căuta date.).
- În caseta de proprietății FiltruCăutare, setați proprietatea la valoarea care va duce la performanța dorită.
- Dacă afișarea listei durează prea mult în fereastra Filtrare după formular, setați proprietatea FiltruCăutare fie la valoarea Niciodată, fie la valoarea Valoarea implicită a bazei de date și apoi faceți modificările corespunzătoare în caseta de dialog Opțiuni (meniul Instrumente).
- Dacă lista din fereastra Filtrare după formular nu afișează valorile stocate în acel câmp, asigurați-vă că proprietatea FiltruCăutare nu este setată la valoarea Niciodată. Dacă proprietatea FiltruCăutare este setată la valoarea Valoarea implicită a bazei de date sau Întotdeauna, faceți modificările corespunzătoare în caseta de dialog Opțiuni (meniul Instrumente).
Îmbunătățirea performanței căutare și înlocuire
Un index ajută la găsirea și sortarea rapidă a înregistrărilor în Microsoft Access. Access utilizează indexuri într-un tabel în mod similar cu utilizarea indexului la o carte: pentru a găsi date, caută amplasarea datelor în index. Puteți crea indexuri bazate pe un singur câmp sau mai multe câmpuri. Indexurile bazate pe mai multe câmpuri permit distingerea înregistrărilor în care primul câmp poate avea aceeași valoare.
Alegerea câmpurilor pentru indexare
Veți dori indexarea câmpurilor în care efectuați frecvent căutări, câmpuri pe care le sortați, sau câmpuri pe care le uniți (asociere: O unire dintre un câmp dintr-un tabel sau o interogare și un câmp conținând același tip de date din alt tabel sau interogare. Asocierile spun programului cum sunt legate datele. Înregistrările care nu sunt potrivite pot fi incluse sau excluse, în funcție de tipul de asociere.) cu câmpuri din alte tabele prin interogări (interogare: Chestionare a datelor stocate în tabele sau cerere de efectuare a unei acțiuni asupra datelor. O interogare poate alătura date din mai multe tabele pentru a servi ca sursă de date pentru un formular sau raport.). Totuși, indexurile pot încetini anumite interogări de acțiune (interogare de acțiune: O interogare care copiază sau modifică date. Interogările de acțiune se împart în: interogări de adăugare, de ștergere, creare tabel și de actualizare. Ele se identifică prin semnul de exclamare (!) care apare lângă numele lor în Panoul de navigare.) cum ar fi interogări de anexare (interogare de adăugare: O interogare de acțiune care adaugă la finalul unui tabel existent înregistrările din setul de rezultate al unei interogări.), atunci când indexurile pentru multe câmpuri necesită actualizare în timpul execuției acestor operații.
Cheia primară (cheie primară: Unul sau mai multe câmpuri (coloane) ale căror valori identifică în mod unic fiecare înregistrare din tabel. O cheie primară nu permite valori Null și trebuie să aibă întotdeauna un index unic. Cheia primară este utilizată pentru a corela un tabel la cheile străine din alte tabele..) a unui tabel este indexată automat și nu puteți indexa un câmp al cărui tip de date (tip de date: Caracteristica unui câmp care determină ce tip de date poate conține. Tipurile de date includ Boolean, Întreg, Lung, Simbol monetar, cu simplă precizie, cu dublă precizie, Șir de caractere și Variant (implicit).) este un obiect OLE (Tip de date obiect OLE: Tip de date care se utilizează pentru obiecte create în alte aplicații care pot fi fi legate sau încorporate (inserate) într-o bază de date Access.). Pentru alte câmpuri, puteți efectua indexarea unui câmp dacă sunt aplicabile următoarele simultan:
- Tipul de date al câmpului este Text, Număr, Monedă, sau Dată/Oră.
- Preconizați căutarea valorilor memorate în câmp.
- Preconizați sortarea valorilor în câmp.
- Preconizați memorarea în câmp a multor valori diferite. Dacă multe dintre valorile câmpului sunt identice, indexul ar putea să nu accelereze în mod semnificativ interogările.
Indexuri pe câmpuri multiple
Dacă anticipați căutare sau sortare frecventă după două sau mai multe câmpuri în același timp, puteți crea un index pentru combinația de câmpuri respectivă. De exemplu, dacă stabiliți frecvent un criteriu pentru câmpurile Prenume și Nume în aceeași interogare, este logic să creați un index după câmpuri multiple pe ambele câmpuri.
La sortarea unui tabel după un index pe câmpuri multiple, Microsoft Access sortează întâi după primul câmp definit pentru index. Dacă există înregistrări cu valori duble în primul câmp, Microsoft Access sortează apoi după al doilea câmp definit pentru index și așa mai departe.
Într-un index pe câmpuri multiple, pot fi incluse până la 10 câmpuri.
Îmbunătățirea performanței formularului și subformularului
Există câteva lucruri care se pot face pentru ca formularul să execute mai repede.
Sfaturi generale
- Se evită controalele care se suprapun.
- Nu se sortează înregistrările într-o interogare (interogare: Chestionare a datelor stocate în tabele sau cerere de efectuare a unei acțiuni asupra datelor. O interogare poate alătura date din mai multe tabele pentru a servi ca sursă de date pentru un formular sau raport.) de bază, decât dacă înregistrarea comandă este importantă, în special cu interogări cu mai multe tabele.
- Dacă sursa inregistrărilor (sursă de înregistrări: Sursa de date subordonată pentru un formular, raport sau pentru o pagină de acces la date. Într-o bază de date Access, poate fi un tabel, o interogare sau o instrucțiune SQL. Într-un proiect Access, poate fi un tabel, o vizualizare, o instrucțiune SQL sau o procedură stocată.) de bază include multe înregistrări și se dorește folosirea formularului în primul rând pentru introducerea înregistrărilor noi, se setează proprietatea IntrareDate a formularului pe Da astfel încât formularul să deschidă o înregistrare necompletată. Dacă se deschide un formular cu toate înregistrările expuse, Microsoft Access trebuie să citească fiecare înregistrare înainte de a putea afișa înregistrarea necompletată de la sfârșitul setului de înregistrări.
- Se închid formularele care nu sunt în uz.
Sfaturi pentru formulare care conțin imagini și obiecte
- Se folosesc bitmapurile și obiectele grafice economic.
- Se transformă cadrele obiect nelegat, care afișează grafice, în controale de tip imagine.
- Mai bine se folosesc bitmapuri alb-negru decât unele color.
Sfaturi pentru formularele care conțin coduri
Un formular fără un modul formular (modul formular: Modul care cuprinde cod Visual Basic for Applications (VBA) pentru toate procedurile eveniment declanșate de evenimentele care apar într-un anumit formular sau în controalele sale.) încarcă mai repede și ocupă mai puțin spațiu pe disc. Dacă un formular sau controalele formularului nu folosesc proceduri eveniment (procedură eveniment: O procedură care se execută automat ca răspuns la un eveniment inițiat de utilizator sau de codul program, sau activat de sistem.), formularul nu necesită un modul formular.
Note
- Dacă un formular conține în mod curent proceduri eveniment și se ia decizia de a elimina toate codurile procedurilor eveniment din acel formular, trebuie setată proprietatea AreModul pe Nu pentru a elimina complet modulul formular.
- Totuși se poate folosi codul cu un formular care nu are modulul formular prin apelarea procedurilor Funcție dintr-un modul standard, folosind o expresie (expresie: Orice combinație de operatori matematici sau logici, constante, funcții și nume de câmpuri, controale și proprietăți evaluate ca valoare unică. Expresiile efectuează calcule, manipulează caractere sau testează date.). (Nu se pot folosi procedurile Sub deoarece nu pot fi apelate folosind o expresie.) Pentru a face aceasta, se definește o procedură Funcție într-un modul standard și apoi se apelează această funcție dintr-o proprietate eveniment (proprietate eveniment: Un atribut denumit al unui control, formă, raport, pagină acces date, sau secțiune utilizat pentru a răspunde la un eveniment asociat. Când are loc un eveniment, se poate executa o procedură sau o macroinstrucțiune setând corect evenimentul asociat.) dintr-un formular sau control. De exemplu, pentru folosirea unui buton comandă pentru a apela o funcție să deschidă un formular, se adaugă o expresie proprietății CândSeFaceClic butonului comandă astfel: =DeschideIntrareDate().
Sfaturi pentru subformulare
Îmbunătățirea performanței casetei listă și a casetei combo
Există mai multe modalități de a determina execuția mai rapidă a casetelor listă, a casetelor combo și a casetelor listă verticală (casetă listă verticală: Un control al unei pagini de acces la date care, când se face clic pe el, afișează o listă din care se selectează o valoare. Nu se poate tasta o valoare într-o casetă listă verticală.):
- Puneți la baza casetei listă, a casetei combo sau listă verticală o interogare (interogare: Chestionare a datelor stocate în tabele sau cerere de efectuare a unei acțiuni asupra datelor. O interogare poate alătura date din mai multe tabele pentru a servi ca sursă de date pentru un formular sau raport.) salvată, nu o instrucțiune SQL. În formulare, dacă utilizați expertul pentru a crea o casetă listă sau combo, Microsoft Access setează automat proprietatea Sursă rânduri a controlului la o instrucțiune SQL. Pentru a modifica proprietatea Sursă rânduri la o interogare salvată, faceți clic pe butonul Generare
de lângă caseta proprietății Sursă rânduri. Cu fereastra Generator de interogări deschisă, faceți clic pe Salvare din meniul Fișier, apoi tastați un nume pentru interogare. La închiderea ferestrei Generator de interogări, faceți clic pe Da când Microsoft Access vă întreabă dacă actualizați proprietatea.
- Puneți la baza casetei listă verticală o interogare salvată, nu un tabel. Într-o pagină de acces la date, dacă utilizați expertul pentru a crea o casetă listă verticală, Access setează automat proprietatea ListRowSource a controlului la tabelul indicat în expert. Pentru a prelua rânduri dintr-o interogare, nu din tabel, selectați numele interogării din caseta proprietății ListRowSource.
- În interogarea indicată în caseta proprietăților Sursă rânduri sau ListRowSource, includeți numai câmpurile care sunt absolut necesare. Câmpurile suplimentare pot scădea performanța.
- Indexați (index: Facilitate care accelerează căutarea și sortarea într-un tabel bazat pe valori cheie și poate impune unicitatea pentru rândurile dintr-un tabel. Cheia primară a unui tabel este automat indexată. Anumite câmpuri nu pot fi indexate datorită tipului lor de date.) primul câmp afișat din caseta combo, caseta listă sau caseta listă verticală și câmpul legat (dacă sunt diferite).
- În casetele combo din formulare, setați proprietatea Auto Extindere la Nu dacă nu este necesară caracteristica de completare la tastare.
- Într-un formular, dacă proprietatea Auto Extindere a unei casete combo box este setată la Da, primul câmp afișat ar trebui să aibă tipul de date Text, ci nu număr. Pentru a găsi valoarea potrivită din listă, Microsoft Access efectuează conversia valorii numerice la text. Dacă tipul de date este Text, Microsoft Access nu trebuie să efectueze această conversie.
- Într-un formular, dacă câmpul legat dintr-o casetă combo de alegere nu este câmpul:
- Nu creați casete listă, casete combo sau listă verticală bazate pe date dintr-un tabel legat (tabel legat: Un tabel stocat într-un fișier din afara bazei de date deschise, din care Access poate accesa înregistrări. Este posibilă adăugarea, ștergerea și editarea de înregistrări dintr-un tabel legat, însă nu i se poate modifica structura.) (extern) dacă datele se vor modifica. Este mai bine în acest caz să importați date în baza de date.
Notă Expertul de interogare nu este disponibil în paginile de acces la date. Experții nu sunt disponibili într-o pagină de acces la date autonomă sau când indicați o pagină de acces la date la o bază de date alta decât cea curent deschisă. În ambele cazuri, va trebui să creați o casetă listă sau o casetă listă verticală cu mijloace proprii.
Îmbunătățirea performanței raportului și subraportului
Îmbunătățirea performanței paginii de acces la date
Aveți câteva soluții pentru a face ca paginile de acces la date să fie încărcate mai rapid în Vizualizare pagină (Vizualizare pagină: O fereastră Access în care se poate răsfoi conținutul unei pagini de acces la date. Paginile au aceeași funcționalitate în Vizualizarea pagină ca în Microsoft Internet Explorer 5.0 sau ulterior.) sau în Microsoft Internet Explorer 5.01 cu Service Pack 2 (SP2) sau mai recent.
Sfaturi generale
- Când utilizați o pagină de acces la date în Microsoft Access, închideți toate obiectele bazei de date care nu sunt utilizate. Când utilizați o pagină de acces la date în Internet Explorer, închideți toate ferestrele care nu sunt utilizate.
- În paginile de acces la date utilizate pentru introducerea de date, setați proprietatea DataEntry a paginii la True pentru ca pagina să deschidă o înregistrare necompletată.
- Indexați toate câmpurile după care sortați, grupați sau filtrați.
- Legați o pagină de acces la date la un fișier de date XML, pentru ca pagina să obțină date dintr-un fișier amplasat pe un client local, nu prin accesarea serverului de baze de date.
Controale
- Evitarea suprapunerii controalelor.
- Utilizați controale extinse în loc de casete text pentru a afișa datele care nu sunt actualizabile — de exemplu, pentru a afișa valori de autonumerotare, valori derivate din expresii și hyperlink-uri.
Securitate Utilizați controale legate sau controale hyperlink cu atenție. Utilizatori neautorizați pot insera text HTML dăunător în aceste controale. Procesarea acestui text fără validare sau modificare poate duce la pierderea unor informații personale sau a altor date. Pentru a împiedica dezvăluirea textului HTML conținut într-un control, codificați conținutul controlului.
Imagini și obiecte
- Utilizați fișiere bitmap și alte obiecte grafice cu cumpătare. Utilizați mai bine fișiere bitmap alb-negru decât color.
Pagini grupate
- Asigurați-vă că proprietatea ExpandedByDefault este setată la False pentru cel mai înalt nivel de grup. Setarea ei la False pentru cel mai înalt nivel de grup va grăbi alte interacțiuni după ce pagina este deschisă.
- Asigurați-vă că proprietatea DataPageSize a nivelului de grup este setată la un număr mai mic sau la All. Cu cât numărul este mai mic, cu atât sunt mai rapid afișate înregistrările.
- Într-o pagină care conține înregistrări cu o relație a unu la mai mulți, grupați înregistrările pe tabel, ci nu pe câmpuri sau expresii.
- Într-o pagină bazată pe tabele cu o relație unu la mai mulți, legați fiecare secțiune la un tabel, nu la o interogare. Microsoft Access preia înregistrări dintr-un tabel numai când este nevoie pentru a le afișa în pagină. Cu o interogare, Access preia toate înregistrările înainte de a afișa înregistrări în pagină. Utilizați o interogare numai când doriți să limitați datele utilizate în pagină, să calculați valori agregate sau să efectuați o activitate posibilă numai într-o interogare.
Despre realizarea bazei de date ca fișier MDE pentru a îmbunătăți performanța
Dacă baza de date conține cod Microsoft Visual Basic for Applications (VBA) (Visual Basic pentru Aplicații (VBA): O versiune de limbaj pentru macrocomenzi a Visual Basic, utilizată pentru programarea aplicațiilor Windows și este inclusă în unele aplicații Microsoft.), salvarea bazei de date Microsoft Access (bază de date: O colecție de date relative la un anumit subiect sau scop. Într-o bază de date, informațiile despre o anumită entitate, cum ar fi un angajat sau o comandă, este aranjată în tabele, înregistrări și câmpuri.) ca fișier MDE compilează toate modulele, elimină tot codul sursă editabil și compactează baza de date destinație. Codul Visual Basic va continua să se execute, dar nu va fi vizualizat sau editat.
Securitate Salvarea bazei de date ca fișier MDE contribuie la protejarea formularelor și rapoartelor fără să ceară utilizatorilor să se conecteze sau să creeze și să gestioneze conturile utilizator (cont de utilizator: Un cont identificat prin nume de utilizator și de ID personal (PID) care este creat pentru gestionarea permisiunilor utilizatorilor de a accesa obiecte ale bazelor de date într-un grup de lucru Access.) și permisiunile (permisiuni: Un set de atribute care specifică ce tip de acces are un utilizator la datele sau la obiectele dintr-o bază de date.) necesare pentru securitatea la nivel de utilizator (securitate la nivel de utilizator: Când se utilizează securitatea la nivel de utilizator într-o bază de date Access, un administrator al bazei de date sau proprietarul unui obiect' poate acorda utilizatorilor individuali sau grupurilor de utilizatori anumite permisiuni pe tabele, interogări, formulare, rapoarte și macrocomenzi.).
Baza de date va continua să funcționeze normal—-datele se actualizează și rapoartele se execută. Suplimentar, dimensiunea bazei de date se va reduce prin eliminarea codului, astfel utilizarea memoriei se optimizează, ceea ce va îmbunătăți performanța.
Salvarea bazei de date Access ca fișier MDE previne următoarele acțiuni:
- Vizualizarea, modificarea sau crearea formularelor, rapoartelor sau modulelor în modul Vizualizare proiect.
- Adăugarea, ștergerea sau modificarea referințelor la baze de date sau la biblioteci obiect.
- Modificarea codului — un fișier MDE nu conține cod sursă.
- Importul sau exportul formularelor, rapoartelor sau modulelor. Oricum, tabelele, interogările, paginile de acces la date (pagină de acces date: O pagină Web, publicată din Acces, care are o conexiune la o bază de date. Într-o pagină de acces date se vizualizează, se adăugă, se editează și se manipulează datele stocate în baza de date. Este posibil ca o pagină să conțină, de asemenea, date din alte surse, cum ar fi Excel.) și macrocomenzile se importă din, sau se exportă în baze de date non-MDE.
Considerații pentru modificarea formei formularelor, rapoartelor sau modulelor
Codul nu mai utilizează securitatea la nivel de utilizator
Considerații înainte de salvarea bazei de date ca fișier MDE
Unele restricții limitează salvarea bazei de date Access ca fișier MDE:
Suplimentar, dacă definiți securitatea cu parolă generică pentru baza de date sau cu parole la nivel de utilizator, înainte de salvarea unei baze de date Access ca fișier MDE, aceste caracteristici se vor aplica și fișierului MDE creat din acea bază de date. Dacă baza de date are securitatea definită cu parolă generică pentru baza de date sau cu parole la nivel de utilizator și intenționați să eliminați aceste caracteristici, este necesar să le eliminați înainte de salvarea bazei de date ca fișier MDE.
Pentru a salva ca fișier MDE o bază de date Access care a angajat securitatea la nivel de utilizator, este necesară îndeplinirea cerințelor următoare înainte de a trece la execuție:
Despre referințe și fișiere MDE
Dacă se creează un fișier MDE dintr-o bază de date Microsoft Access (.mdb) sau dintr-un program de completare (.mda) (componentă inclusă la cerere: Un program suplimentar care adaugă comenzi sau caracteristici particularizate în Microsoft Office.) care se referă la altă bază de date Access sau la alt program de completare, Access afișează un mesaj de eroare și nu termină operația. Pentru a salva ca fișier MDE baza de date care se referă la o altă bază de date, trebuie să salvați toate bazele de date din lanțul de referințe ca fișiere MDE, începând cu prima bază de date referită. După salvarea primei baze de date ca fișier MDE, este necesar să actualizați referința din următoarea bază de date pentru a indica noul fișier MDE, înainte de a o salva pe aceasta ca fișier MDE, și așa mai departe.
De exemplu, dacă Database1.mdb se referă la Database2.mdb, care se referă la Database3.mda, se procedează după cum urmează:
- Salvați Database3.mda ca Database3.mde.
- Deschideți Database 2.mdb și modificați referința sa astfel încât să indice noul fișier Database3.mde.
- Salvați Database2.mdb ca Database2.mde.
- Deschideți Database1.mdb și modificați referința sa astfel încât să indice noul fișier Database2.mde.
- Salvați Database1.mdb ca Database1.mde.
Despre salvarea unei baze de date reproduse ca fișier MDE
Despre compactarea unei baze de date Access
Microsoft Access combină compactarea și remedierea unui fișier tip Access (fișier Microsoft Access: Un fișier bază de date sau proiect. În Access 2007, obiectele și datele bazei de date se stochează în fișiere .accdb. Versiunile anterioare utilizează fișiere .mdb. Un fișier proiect Access nu conține date și se utilizează pentru conectarea la o bază de date SQL Server.) într-un singur proces.
Compactarea unui fișier tip Access
Dacă ștergeți date sau obiecte într-o bază de date Access (bază de date Microsoft Access: O colecție de date și obiecte (cum ar fi tabele, interogări sau formulare) care sunt grupate pe baza unui anumit subiect sau scop.) sau dacă ștergeți obiecte într-un proiect Access (proiect Microsoft Access: Un fișier Access care se conectează la o bază de date Microsoft SQL Server și se utilizează pentru a crea aplicații client/server. Un fișier proiect nu conține date sau obiecte bazate pe definiții de date, cum ar fi tabele și vizualizări.), fișierul poate deveni defragmentat și utiliza ineficient spațiul pe disc. Prin compactarea fișierului tip Access se creează o copie a fișierului și se rearanjează modul de memorare a fișierului pe disc. Prin compactarea unei versiuni anterioare a bazei de date Access aceasta nu va fi transformată în format Access2000-2003.
Compactarea optimizează atât performanța bazei de date Access cât și a proiectelor Access. Totuși, într-un proiect Access, compactarea nu afectează obiectele bazei de date (obiecte bază de date: O bază de date Access conține obiecte ca tabele, interogări, formulare, rapoarte, pagini, macrocomenzi și module. Un proiect Access conține obiecte ca formulare, rapoarte, pagini, macrocomenzi și module.) — cum ar fi tabele sau vizualizări — care se găsesc în baza de date a Microsoft SQL Server (bază de date Microsoft SQL Server: O bază de date compusă din tabele, vizualizări, indexuri, proceduri stocate, funcții și triggere. Baza de date se poate conecta la datele SQL Server utilizând ODBC sau creând un fișier proiect Access (*.adp).) și nu în proiectul Access.
Compactarea nu afectează numerotarea automată într-un proiect Access. Totuși, într-o bază de date Access, dacă ați șters înregistrări de la sfârșitul unui tabel care conține un câmp AutoNumerotare (Tip de date AutoNumerotare: Într-o bază de date Microsoft Access, un tip de date de câmp care stochează automat un număr unic pentru fiecare înregistrare, pe măsură ce sunt adăugate la tabel. Există trei tipuri de numere ce pot fi generate: secvențiale, aleatoare și ID reproducere.), prin compactarea bazei de date se reinițializează valoarea AutoNumerotare; valoarea AutoNumerotare a următoarei înregistrări adăugate va fi cu una mai mare decât valoarea AutoNumerotare a ultimei înregistrări neșterse din tabel.
Remedierea unui fișier tip Access
În majoritatea cazurilor, Microsoft Access detectează la deschiderea unui fișier Access dacă acesta este deteriorat și oferă opțiunea de remediere imediată. Dacă fișierul tip Access curent conține o referință către alt fișier tip Access care este corupt, Access nu va încerca să remedieze celălalt fișier. În unele situații, Access poate să nu detecteze că un fișier este deteriorat. Dacă un fișier tip Access are o evoluție neregulată, compactați și remediați fișierul.
Access poate remedia:
Pentru a ajuta la prevenirea coruperii fișierelor Access, urmați aceste indicații:
- Compactați și remediați fișierele tip Access în mod constant. Puteți preciza ca Access să compacteze automat un fișier la închidere.
- Efectuați copii de rezervă ale fișierelor tip Access în mod regulat.
- Evitați părăsirea Access în mod neașteptat. De exemplu, nu părăsiți Access brusc prin dezactivarea calculatorului.
- Dacă vă confruntați cu probleme de rețea, evitați utilizarea unei baze de date Access partajate amplasate pe un server de rețea până când problemele vor fi rezolvate. Dacă este posibil, mutați baza de date Access pe un calculator de unde să o puteți accesa local și nu din cadrul rețelei.
Remedierea fișierelor după închiderea neașteptată a Access
Dacă apare o problemă serioasă și cauzează închiderea Microsoft Access, atunci Access va reporni, va crea o copie a fișierului care a fost deschis și o va denumi numefișier_Backup.mdb sau numefișier_Backup.adp, unde numefișier reprezintă numele fișierului inițial. Dacă numefișier_Backup.mdb sau numefișier_Backup.adp există deja, Access va întreba pentru precizarea numelui de fișier. Access va încerca apoi să compacteze și să remedieze fișierul inițial.