În practică, există cazuri în care, în tabel, se introduc valori din orice set care poate fi format în moduri diferite. Una dintre cele mai frecvent utilizate este opțiunea, atunci când aceste valori sunt cuprinse în câmpul unui alt tabel, iar setul de valori ale tuturor înregistrărilor acestui câmp formează un set de valori permise.
Pentru câmpurile de unele tipuri, de exemplu, șir, numeric sau dată, puteți defini o anumită tabelă (tabelul de selecție) ale cărui câmpuri vor fi folosite pentru a forma un set de valori permise. Dacă este specificat un tabel de selecție pentru un câmp, poate fi introdusă numai valoarea din tabelul de selecție (în câmpul specificat al oricărei intrări). Setarea tabelului de selecție asigură că nu este introdusă o valoare nevalidă în câmp.
Acțiunea unui set de valori valide se aplică, de asemenea, în mod programatic, editării înregistrărilor tabelului: atunci când se face o încercare de a atribui câmpului o valoare nevalidă, se aruncă o excepție.
Când introduceți valorile șirului, se ia în considerare cazul literelor, de exemplu, driverul și DRIVER-ul sunt valori diferite.
În ambele cazuri, valoarea nulă este validă (Null), cu excepția cazului în care, desigur, este specificată o constrângere că câmpul nu poate fi gol.
Pentru a efectua operațiuni asociate cu câmpurile de selecție, se utilizează elementul Lookup tabel din lista combinată de proprietăți Table din fereastra de definire a structurii tabelului. În același timp, în listă, devine disponibil butonul Define, clic pe care se deschide fereastra de căutare a tabelului.
Lista de câmpuri afișează numele tuturor câmpurilor din tabel, în timp ce numele câmpurilor care nu permit crearea unei tabele de selecție sunt șterse (de exemplu, un câmp de tip autoincrement).
Numele câmpului pentru care este specificat tabelul de selecție este afișat în zona Nume câmp, pentru ao specifica, selectați linia dorită din lista câmpuri și faceți clic pe butonul săgeată dreapta. Dacă specificați un alt câmp și faceți clic pe buton, numele acestui câmp va merge la câmpul cu numele câmpului și va înlocui numele câmpului anterior.
După specificarea tabelului de selecție, apăsarea butonului cu imaginea săgeții spre stânga traduce numele câmpului său inițial, ale cărui valori vor fi folosite pentru a forma un set de valori valide, în câmpul Căutare. Tipurile de câmpuri ale ambelor tabele trebuie să se potrivească, altfel în panoul de informații este afișat un mesaj de eroare.
Cu grupul de tipuri de comutatoare tip Lookup, puteți specifica modul în care ambele tabele interacționează. Dacă butonul radio "Just current field" este activat, atunci tabelul de selecție este setat numai pentru câmpul specificat în zona Field name. Comutatorul Toate câmpurile corespunzătoare alocă un tabel de selecție nu numai câmpului specificat, ci și tuturor câmpurilor relevante. Numele și tipurile acestor câmpuri trebuie să corespundă câmpurilor corespunzătoare din tabelul de selecție.
Grupul de acces pentru comutatori de căutare determină modul în care utilizatorul utilizează valorile din tabelul de selecție. Dacă comutatorul Fill No help este activat, atunci când editați câmpul pentru care este definită tabela de selecție, utilizatorul trebuie să cunoască valorile valide pentru acest câmp. Cu toate acestea, termenul "alegere" nu reflectă cu exactitate interdependența câmpurilor tabelelor, deoarece utilizatorului nu i se oferă o listă de valori posibile din care să poată alege acea care are nevoie. Utilizatorul însuși introduce o valoare în câmp, în timp ce la nivelul mesei se face o verificare pentru a vedea dacă această valoare este validă. Dacă valoarea lipsește în câmpul specificat din tabelul de selecție, acesta nu este acceptat. În acest caz, puteți afișa tabelul de selecție de lângă tabelul de editat.
Setarea butonului Ajutor și umplere vă permite să introduceți nu numai o valoare în câmp, așa cum este descris mai sus, ci și să selectați cu adevărat valoarea din listă. O listă generată pe baza valorilor câmpului (tabelelor) tabelului de selecție apare atunci când apăsați o combinație de taste
Valorile pot fi șterse din tabelul de selecție. Dacă aceste valori sunt cuprinse în câmpurile din tabelul care utilizează tabelul de selecție, apare o eroare la trecerea la modul de editare. Când se utilizează un program cum ar fi Database Desktop, tabela nu poate fi eliminată din modul de editare până când toate valorile acesteia nu sunt aliniate la noile valori ale tabelului de selecție. La momentul executării, o excepție este aruncată atunci când accesați un tabel care utilizează valori care sunt șterse din tabelul de selecție.
După lucrarea pentru câmpul tabelului de selecție, butoanele Modificare și ștergere sunt disponibile în fereastra de definire a structurii tabelului, precum și lista în care este afișat numele acestui tabel.
Apăsând din nou butonul Modificare se deschide tabela de selecție a tabelului de selecție în care puteți introduce date noi. Butonul Ștergere este utilizat pentru a anula utilizarea tabelului de selecție și a restricțiilor asociate valorilor câmpului.
Obiectele de câmp ale tipului TField din seturile de date Tabel și Interogare, precum și componenta DBGrid, vă permit să definiți o listă de selecție pentru câmp, care permite, de asemenea, utilizatorului să selecteze valori la editare. Acestea sunt setate la nivel de software și funcționează numai în aplicația lor.