Cu funcțiile de șir, puteți crea expresii în Access care manipulează textul în diverse moduri. De exemplu, poate doriți să afișați numai o parte a unui număr serial într-un formular. Sau poate fi necesar să uniți (să concatenați) mai multe șiruri, cum ar fi un nume de familie și un prenume. Dacă nu sunteți încă priceput cu expresiile, consultați Crearea unei expresii.
Iată o listă a câtorva dintre cele mai obișnuite operațiuni de șir din Access și funcțiile pe care le-ați utiliza pentru a le efectua:
| Pentru... | Utilizați cursorul... | De exemplu... | Rezultatele |
|---|---|---|---|
| Returnați caractere de la începutul unui șir | Funcția Left | =Left([NumărSerial],2) | Dacă [NumărSerial] este "CD234", rezultatul este "CD". |
| Returnați caractere de la sfârșitul unui șir | Funcția Right | =Right([NumărSerial],3) | Dacă [NumărSerial] este "CD234", rezultatul este "234". |
| Găsirea poziției unui caracter într-un șir | Funcția InStr | =InStr(1,[Prenume],"i") | Dacă [Prenume] este "Colin", rezultatul este 4. |
| Returnați caractere din mijlocul unui șir | Funcția Mid | =Mid([NumărSerial];2;2) | Dacă [NumărSerial] este "CD234", rezultatul este "D2". |
| Ascunderea parțială a spațiilor inițiale sau suplimentare dintr-un șir | Funcțiile LTrim, Rtrim și Trim | =Trim([Prenume]) | Dacă [Prenume] este " Colin ", rezultatul este "Colin". |
| Unirea a două șiruri | Operatorul semnul plus (+)* | =[Prenume] + [Nume] | Dacă [Prenume] este "Colin" și [Nume] este Wilcox, rezultatul este "ColinWilcox" |
| Unirea a două șiruri cu un spațiu între ele | Operatorul semnul plus (+)* | =[Prenume] + " " + [Nume] | Dacă [Prenume] este "Colin" și [Nume] este Wilcox, rezultatul este "Colin Wilcox" |
| Modificarea corpului de literă al unui șir în majuscule sau minuscule | Funcția UCase sau funcția LCase | =UCase([Prenume]) | Dacă [Prenume] este "Colin", rezultatul este "COLIN". |
| Determinarea lungimii unui șir | Funcția Len | =Len([Prenume]) | Dacă [Prenume] este "Colin", rezultatul este 5. |
* OK, deci nu este o funcție, este un operator. Totuși, este cea mai rapidă modalitate de a uni șiruri. Într-o bază de date desktop, puteți utiliza, de asemenea, operatorul ampersand (&) pentru concatenare.
Există mult mai multe funcții legate de text în Access. O modalitate bună de a afla mai multe despre acestea este să deschideți Generatorul de expresii și să răsfoiți listele de funcții. Generatorul de expresii este disponibil aproape oriunde doriți să construiți o expresie; de obicei, există un mic buton Generare care arată astfel:
Pentru a demonstra Generatorul de expresii, să-l deschidem din proprietatea Sursă control într-un formular sau într-o vizualizare. Utilizați una dintre procedurile de mai jos, în funcție de utilizarea unei baze de date desktop sau a unei aplicații web Access.
Afișarea Generatorului de expresii într-o bază de date desktop
Deschideți o bază de date desktop (.accdb).
Apăsați F11 pentru a deschide Panoul de navigare, dacă nu este deja deschis.
Dacă aveți deja un formular disponibil, faceți clic cu butonul din dreapta pe el în Panoul de navigare și faceți clic pe Vizualizare aspect. Dacă nu aveți un formular cu care să lucrați, faceți clic pe Creare>formular.
Faceți clic cu butonul din dreapta pe o casetă text din formular, apoi faceți clic pe Proprietăți.
In the Property Sheet, click All>Control Source and click the Build button
în partea dreaptă a casetei de proprietăți Sursă control .
Sub Elemente expresie, extindeți nodul Funcții și faceți clic pe Funcții predefinite.
Sub Categorii expresii, faceți clic pe Text.
Sub Valori expresie, faceți clic pe diverse funcții și citiți scurtele descrieri din partea de jos a Generatorului de expresii.
Notă
Nu toate aceste funcții sunt disponibile în toate contextele; Access filtrează automat lista în funcție de cele care funcționează în fiecare context.
Combinarea funcțiilor text pentru mai multă flexibilitate
Unele funcții de șir au argumente numerice pe care, în unele cazuri, trebuie să le calculați de fiecare dată când apelați funcția. De exemplu, funcția Left preia un șir și un număr, ca în =Left(NumărSerial, 2). Este foarte bun dacă știți că aveți nevoie întotdeauna de cele două caractere din stânga, dar ce se întâmplă dacă numărul de caractere de care aveți nevoie variază de la un element la celălalt? În loc să "codificați impus" numărul de caractere, puteți introduce altă funcție care îl calculează.
Iată un exemplu de numere seriale care au fiecare o cratimă undeva în șir. Cu toate acestea, poziția cratimei variază:
| Număr de serie |
|---|
| 3928-29993 |
| 23-9923 |
| 333-53234 |
| 3399940-444 |
Dacă doriți doar să afișați numerele din partea stângă a cratimei, trebuie să faceți un calcul de fiecare dată pentru a afla unde se află cratima. O opțiune este să faceți ceva astfel:
=Left([NumărSerial],InStr(1,[NumărSerial],"-")-1)
În loc să introducem un număr ca al doilea argument al funcției Left, am introdus funcția InStr, care returnează poziția cratimei în numărul serial. Scădeți 1 din acea valoare și obțineți numărul corect de caractere de returnat de funcția Left. Pare puțin complicat la început, dar cu puțină încercare puteți combina două sau mai multe expresii pentru a obține rezultatele dorite.