- Microsoft Access este un instrument accesibil pentru gestionarea bazelor de date fără cunoștințe avansate de programare.
- Vă permite să creați, să personalizați și să gestionați baze de date cu o interfață intuitivă și vizuală.
- Oferă avantaje precum integrarea cu alte aplicații Microsoft și ușurința în utilizare pentru începători.
- Este ideal pentru proiecte mici și mijlocii, cu opțiuni de scalabilitate către sisteme mai robuste.
Acces baze de date: Ghidul suprem pentru începători
Introducere în bazele de date cu Access
Bazele de date sunt în centrul managementului informațiilor în lumea digitală de astăzi. Microsoft Access, un instrument puternic și versatil, a devenit poarta de acces pentru mulți începători în lumea fascinantă a bazelor de date. În acest ghid cuprinzător, vom acoperi toate elementele esențiale pentru a vă ajuta să stăpâniți bazele de date Access și să puneți bazele carierei dumneavoastră în managementul datelor.
Access combină simplitatea unei interfețe vizuale cu puterea unui sistem de gestionare a bazelor de date relaționale. Această combinație îl face o alegere ideală pentru cei care doresc să înceapă în lumea bazelor de date fără a fi nevoiți să se scufunde direct în limbaje de programare complexe precum SQL.
Pe parcursul acestui articol, vom explora totul, de la concepte de bază la tehnici avansate, oferindu-vă o înțelegere solidă a modului în care puteți crea, gestiona și optimiza bazele de date cu Access. Indiferent dacă doriți să organizați informații personale sau să dezvoltați soluții de afaceri, acest ghid vă va dota cu cunoștințele de care aveți nevoie pentru a profita la maximum de acest instrument.
Fundamentele Microsoft Access
Microsoft Access este o aplicație de sistem de gestionare a bazelor de date relaționale care face parte din suita Microsoft Office. Interfața sa intuitivă și integrarea cu alte instrumente Office îl fac o alegere populară atât pentru utilizatorii începători, cât și pentru cei profesioniști.
Ce este o bază de date relațională?
O bază de date relațională este un tip de bază de date care organizează informațiile în tabele interconectate. Fiecare tabel reprezintă o entitate (cum ar fi clienți, produse sau comenzi), iar relațiile dintre aceste tabele permit crearea de conexiuni logice între date. Acest model de bază de date este fundamental pentru înțelegerea modului în care funcționează Access.
Componentele principale ale Access
- trage: Sunt baza oricărei baze de date din Access. Aici sunt stocate informațiile în rânduri (înregistrări) și coloane (câmpuri).
- Interogări: Vă permit să preluați, să filtrați și să analizați date dintr-unul sau mai multe tabele. Interogările sunt o parte esențială a lucrului cu bazele de date SQL din Access.
- formulare: facilitează introducerea și vizualizarea datelor într-un mod mai ușor de utilizat decât tabelele brute.
- informații: Permit prezentarea datelor într-un mod organizat și atractiv din punct de vedere vizual pentru analiză sau tipărire.
- Macro-uri și module VBA: Oferă automatizare și funcționalitate avansată pentru utilizatorii mai experimentați.
Avantajele utilizării Access pentru baze de date
- Ușor de utilizat: Interfața sa grafică vă permite să creați și să gestionați baze de date fără a necesita cunoștințe aprofundate de programare.
- Integrare Office: Funcționează perfect cu Excel, Word și alte aplicații Microsoft.
- Scalabilitate: Ideal pentru proiecte mici și mijlocii, cu posibilitatea de a migra către sisteme mai robuste precum SQL Server.
- Personalizare: Oferă un grad ridicat de flexibilitate pentru adaptarea bazei de date la nevoi specifice.
Noțiuni introductive cu Access
Pentru început, este esențial să vă familiarizați cu interfața Access. Când deschideți aplicația, vi se vor prezenta opțiuni pentru a crea o nouă bază de date sau a deschide una existentă. Explorarea șabloanelor predefinite poate fi o modalitate excelentă de a înțelege structura unei baze de date bine concepute.
După ce ați creat prima bază de date, faceți-vă timp pentru a explora panglica și diferitele vizualizări disponibile. Vizualizarea design tabel, de exemplu, vă va permite să definiți câmpuri și tipuri de date, în timp ce vizualizarea foaie de date vă va afișa înregistrările într-un format asemănător unei foi de calcul.
Amintiți-vă că practica este cheia. Nu vă fie teamă să experimentați cu diferite structuri și funcționalități. Pe măsură ce progresați prin acest ghid, veți construi o bază solidă pentru crearea unor baze de date Access din ce în ce mai complexe și mai eficiente.
Proiectarea tabelelor și a relațiilor
Proiectarea tabelelor și crearea de relații sunt esențiale pentru construirea unei baze de date eficiente și funcționale în Access. Această etapă pune bazele pentru toate lucrările ulterioare, deci este crucial să îi aloci timpul și atenția necesare.
Crearea de tabele eficiente
Când creați tabele în Access, este important să urmați câteva bune practici:
- Standardizare: Împărțiți informațiile în tabele logice pentru a evita redundanța datelor. De exemplu, în loc să aveți un singur tabel cu toate informațiile despre clienți și comenzi, creați tabele separate pentru clienți și comenzi.
- Alegerea tipurilor de date: Selectați tipul de date adecvat pentru fiecare câmp (text, număr, dată etc.). Acest lucru nu numai că economisește spațiu, dar îmbunătățește și integritatea datelor.
- Chei primare: Fiecare tabel trebuie să aibă o cheie primară unică care identifică fiecare înregistrare. Access poate genera automat un câmp „ID” cu număr automat în acest scop.
- Câmpuri calculate: Folosiți câmpuri calculate pentru informații care pot fi derivate din alte câmpuri, în loc să le stocați direct.
Stabilirea relatiilor
Relațiile sunt inima modelului bazei de date relaționale. În Access, puteți crea mai multe tipuri de relații:
- Unul câte unul: Fiecare înregistrare din tabelul A se referă la o singură înregistrare din tabelul B.
- Unu la mulți: O înregistrare din tabelul A poate fi asociată cu mai multe înregistrări din tabelul B.
- Mulți la mulți: Înregistrările multiple din Tabelul A pot fi legate de înregistrări multiple din Tabelul B (de obicei implementate printr-un tabel de unire).
Pentru a stabili relații:
- Accesați fila „Instrumente pentru baze de date” și selectați „Relații”.
- Trageți câmpurile asociate între tabele pentru a crea conexiunea.
- Definește integritatea referențială pentru a menține consistența datelor.
Integritate referenţială
Integritatea referenţială este crucială pentru menţinerea coerenţei datelor în baza de date. Când îl activezi:
- Împiedică înregistrările la care se referă alte tabele să fie șterse.
- Se asigură că datele nu pot fi inserate într-un tabel asociat dacă o înregistrare corespunzătoare nu există în tabelul părinte.
Exemplu practic de baze de date cu Access
Să ne imaginăm o bază de date pentru un magazin online. Am putea avea următoarele tabele:
- Clienții care: Client_ID (cheie primară), Nume, E-mail, Adresă
- produce: Product_ID (cheie primară), Product_Name, Price, Stock
- Comandă: Order_ID (cheie primară), Customer_ID (cheie externă), Order_Date
- Comanda_Detalii: Detail_ID (cheie primară), Order_ID (cheie externă), Product_ID (cheie externă), Cantitate
În acest model, am stabili relații unu-la-mulți între Clienți și Comenzi și între Comenzi și Detalii_Comenzi. Tabelul Order_Details acționează ca un tabel de unire pentru relația multi-la-mulți dintre Comenzi și Produse.
Când vă proiectați tabelele și relațiile, gândiți-vă întotdeauna la modul în care datele se raportează în lumea reală. Un design bun al bazei de date reflectă logica sistemului pe care îl modelați, facilitând interogări eficiente și întreținere pe termen lung.
Amintiți-vă că proiectarea bazei de date este un proces iterativ. Nu vă fie teamă să faceți ajustări, deoarece înțelegeți mai bine nevoile dvs. de date. Cu practică și experiență, veți dezvolta un instinct pentru a crea structuri de baze de date Access care sunt robuste și eficiente.
Interogări avansate în Access
Interogările sunt una dintre cele mai puternice caracteristici ale Access, permițându-vă să extrageți, să filtrați și să analizați eficient datele. Stăpânirea interogărilor este esențială pentru a profita la maximum de bazele de date Access și pentru a efectua analize complexe.
Tipuri de interogări în Access
- Consultatii de selectie: Cel mai frecvent, acestea preiau date dintr-unul sau mai multe tabele pe baza unor criterii specifice.
- Interogări de acțiune: faceți modificări datelor, cum ar fi actualizarea, ștergerea sau adăugarea înregistrărilor.
- Interogări încrucișate: Rezumați datele și prezentați-le într-un format de tabel pivot.
- Interogări de sindicat: Combinați înregistrările din mai multe tabele pe baza câmpurilor înrudite.
Crearea de interogări avansate
Pentru a crea interogări mai sofisticate, puteți utiliza vizualizarea de proiectare a interogării sau puteți scrie direct SQL. Iată câteva tehnici avansate:
Folosind mai multe criterii
Puteți combina mai multe criterii folosind operatori logici precum AND și SAU. De exemplu:
SELECT * FROM Productos
WHERE (Precio > 100 AND Categoria = 'Electrónica')
OR (Stock < 10 AND Proveedor = 'Proveedor A')Totaluri de interogări
Utilizează funcții de agregare precum SUM, AVG, COUNT pentru a efectua calcule pe grupuri de înregistrări:
SELECT Categoria, AVG(Precio) AS PrecioPromedio
FROM Productos
GROUP BY Categoria
HAVING AVG(Precio) > 50Subinterogări
Subinterogările vă permit să imbricați o interogare în alta pentru a efectua operațiuni mai complexe:
SELECT NombreProducto, Precio
FROM Productos
WHERE Precio > (SELECT AVG(Precio) FROM Productos)Optimizarea interogărilor
Pentru a îmbunătăți performanța interogărilor dvs.:
- Folosiți indici: Creați indecși pe câmpurile care sunt utilizate frecvent în interogări.
- Limitează datele recuperate: Selectați numai câmpurile obligatorii în loc să utilizați *.
- Folosiți JOIN-urile în loc de subinterogări acolo unde este posibil pentru a îmbunătăți eficiența.
Interogări parametrizate
Interogările parametrizate vă permit să creați interogări flexibile care solicită utilizatorului introducerea:
PARAMETERS Currency;
SELECT * FROM Productos
WHERE Precio > Lucrul cu baze de date cu SQL în Access
Deși Access oferă o interfață grafică pentru crearea de interogări, cunoașterea SQL vă oferă mai mult control și flexibilitate. Puteți comuta între vizualizarea design și vizualizarea SQL pentru a vă rafina interogările.
Exemplu de interogare SQL mai complexă:
SELECT c.NombreCliente,
SUM(dp.Cantidad * p.PrecioUnitario) AS TotalGastado
FROM Clientes c
INNER JOIN Pedidos pe ON c.ID_Cliente = pe.ID_Cliente
INNER JOIN Detalles_Pedido dp ON pe.ID_Pedido = dp.ID_Pedido
INNER JOIN Productos p ON dp.ID_Producto = p.ID_Producto
WHERE YEAR(pe.Fecha_Pedido) = YEAR(Date())
GROUP BY c.NombreCliente
HAVING SUM(dp.Cantidad * p.Precio) > 1000
ORDER BY TotalGastado DESC
Această interogare calculează totalul cheltuit de fiecare client în anul curent, arătând numai cei care au cheltuit mai mult de 1000, ordonați de la cea mai mare la cea mai mică cheltuială.
Stăpânirea interogărilor avansate în Access vă va permite să extrageți informații valoroase din datele dvs., să efectuați analize complexe și să luați decizii informate pe baza bazei de date. Exersați crearea de interogări din ce în ce mai complexe și nu vă fie teamă să experimentați cu diferite tehnici și combinații de funcții SQL. Baze de date cu acces sunt posibile și astăzi.
Formulare interactive pentru introducerea datelor
Formularele din Access sunt instrumente fundamentale pentru interacțiunea utilizatorului cu baza de date. Acestea oferă o interfață ușor de utilizat pentru introducerea, editarea și vizualizarea datelor, îmbunătățind semnificativ experiența utilizatorului și eficiența în gestionarea informațiilor.
Importanța formelor
Formularele oferă mai multe avantaje față de introducerea directă a datelor în tabele:
- Ușor de utilizat: Prezintă datele într-un mod mai organizat și mai atractiv din punct de vedere vizual.
- Control de intrare: Vă permit să validați datele și să evitați erorile comune.
- Personalizare: Pot fi adaptate pentru a afișa doar informațiile relevante pentru fiecare utilizator.
- automatizare: Pot include calcule automate și logica de afaceri.
Crearea formularelor de bază
Pentru a crea un formular de bază:
- Selectați tabelul sau interogarea pe care doriți să bazați formularul.
- Accesați fila „Creare” și alegeți „Formular” pentru crearea rapidă.
- Utilizați Expertul formular pentru mai mult control asupra designului dumneavoastră inițial.
Design avansat de formulare
Pentru a crea forme mai sofisticate:
- Utilizați vizualizarea de proiectare: Permite controlul precis asupra aranjamentului elementelor.
- Adăugați controale: Include casete de text, butoane, liste derulante etc.
- Personalizați aspectul: Ajustați culorile, fonturile și stilurile pentru a îmbunătăți estetica.
- Creați subformulare: Util pentru afișarea datelor asociate (de exemplu, comenzile clienților).
Validarea datelor în formulare
Validarea este crucială pentru menținerea integrității datelor:
- Reguli de validare: setați reguli pentru câmpuri (de exemplu, intervale de date valide).
- Mesaje de eroare personalizate: Oferă feedback clar atunci când sunt introduse date incorecte.
- Liste de valori: Folosiți listele derulante pentru a limita opțiunile la valori predefinite.
Exemplu de regulă de validare pentru un câmp de vârstă:
Entre 18 Y 100Cu mesajul de eroare:
La edad debe estar entre 18 y 100 años.Automatizare cu macrocomenzi și VBA
Pentru o funcționalitate mai avansată, puteți utiliza macrocomenzi sau Visual Basic pentru aplicații (VBA):
- Macrocomenzi: Automatizează acțiunile comune fără a fi nevoie de programare.
- VBA: Oferă o mai mare flexibilitate pentru o logică complexă și personalizare avansată.
Exemplu de cod VBA pentru a valida un formular înainte de a salva:
Private Sub Form_BeforeUpdate(Cancel As Integer)
If IsNull(Me.NombreCliente) Or Len(Trim(Me.NombreCliente)) = 0 Then
MsgBox "El nombre del cliente es obligatorio.", vbExclamation
Cancel = True
End If
End SubCrearea de forme dinamice
Formele dinamice se adaptează în funcție de acțiunile utilizatorului sau de starea datelor:
- Filtre dinamice: Modificați opțiunile disponibile pe un control pe baza selecțiilor anterioare.
- Vizibilitate condiționată: Afișează sau ascunde câmpurile în funcție de anumite condiții.
- Calcule în timp real: Actualizează totalurile sau rezumatele pe măsură ce utilizatorul introduce date.
Cele mai bune practici pentru proiectarea formularelor
- Ușura: Nu supraîncărcați formularul cu prea multe elemente.
- consistență: Păstrați un design consistent în toate formularele dvs.
- Accesibilitate: Asigurați-vă că formularul este prietenos cu tastatura și compatibil cu cititoarele de ecran.
- feedback-ul: Oferă o confirmare clară a acțiunilor întreprinse.
Exemplu practic: Formular de comandă
Să ne imaginăm un formular pentru a introduce comenzi noi în baza noastră de date:
- Antetul comenzii: Câmpuri pentru ID-ul clientului (lista derulantă), Data comenzii (cu validare) și Starea comenzii.
- Detalii despre comandă: Subformular care afișează o listă de produse, cantități și prețuri.
- Rezumat: câmpuri calculate care arată totalul comenzii, taxele și totalul final.
- butoane de acțiune: «Salvează comanda», «Anulează», «Tipărește factura».
Cod VBA pentru a calcula totalul comenzii:
Private Sub Calcular_Total()
Dim rs As Recordset
Dim total As Currencyset rs = Me.Subform_Details.Formă.RecordsetClonetotal = 0
if Nu rs.EOF "Atunci rs.MoveFirst
Do Până la rs.EOF
total = total + rs!Cantitate * rs!Preț unitar
rs.Mutați Următorul
Buclă
Sfârșit dacă
Rapoarte personalizate și analiză de date
Rapoartele din Access sunt instrumente puternice pentru prezentarea și analiza eficientă a datelor. Acestea vă permit să transformați informațiile stocate în baza de date în documente atractive vizual și ușor de înțeles, ideale pentru luarea deciziilor și prezentarea rezultatelor.
Accesați elementele de bază ale raportării
Rapoartele în Access oferă mai multe avantaje:
- Prezentare profesională: Vă permit să creați documente cu un aspect lustruit și profesional.
- flexibilitate: Pot fi personalizate pentru a afișa datele în mai multe moduri.
- Calcule automate: Acestea includ totaluri, medii și alte calcule complexe.
- Grupare și clasificare: Ei organizează datele într-un mod logic și ușor de urmărit.
Crearea rapoartelor de bază
Pentru a crea un raport de bază:
- Selectați tabelul sau interogarea pe care doriți să bazați raportul.
- Accesați fila „Creați” și alegeți „Raportați” pentru crearea rapidă.
- Utilizați expertul de raportare pentru mai mult control asupra designului dumneavoastră inițial.
Proiectare avansată a rapoartelor
Pentru rapoarte mai sofisticate:
- Utilizați vizualizarea de proiectare: Permite controlul precis asupra aranjamentului elementelor.
- Adăugați elemente grafice: Includeți sigle, imagini și elemente grafice pentru a îmbunătăți prezentarea vizuală.
- Creați secțiuni personalizate: adăugați anteturi și subsoluri pentru fiecare grup de date.
- Folosește expresii: Încorporează calcule și logica condiționată în raport.
Gruparea și clasificarea datelor
Gruparea și clasificarea sunt esențiale pentru organizarea informațiilor:
- Niveluri de grupare: Organizați datele în categorii și subcategorii.
- Totaluri de grup: Calculați subtotalurile pentru fiecare grup de date.
- Clasificare personalizată: Sortați datele după mai multe criterii.
Exemplu de expresie pentru a calcula vânzările totale pe grup:
=Sum(*)Diagrame și vizualizări
Diagramele vă pot îmbunătăți în mod semnificativ înțelegerea datelor:
- Grafică integrată: inserați diagrame direct în raport.
- grafică dinamică: Creați vizualizări care se actualizează automat cu date.
- Format condiționat: Folosiți culori și stiluri pentru a evidenția tendințe sau valori importante.
Rapoarte interactive
Pentru a crea rapoarte mai dinamice:
- parametrii: Permite utilizatorilor să personalizeze raportul în timpul rulării.
- Hiperlinkuri: Include link-uri către detalii suplimentare sau resurse externe.
- Subrapoarte: Încorporați rapoarte în alte rapoarte pentru a afișa datele aferente.
Exemplu de raport parametrizat:
PARAMETERS Short;
SELECT *
FROM Ventas
WHERE Year(]) = Exportul și distribuirea rapoartelor
Access oferă mai multe opțiuni pentru partajarea rapoartelor:
- Exportați în PDF: Ideal pentru distribuție și arhivare.
- Exportați în Excel: Util pentru analize ulterioare.
- Trimitere prin e-mail: Distribuirea automată a rapoartelor.
Analiza avansată a datelor: baze de date cu acces
Pentru analize suplimentare:
- Tabelele dinamice: Creați rezumate interactive ale seturilor mari de date.
- Interogări încrucișate: generează rapoarte matrice pentru comparații complexe.
- Integrare Power BI: Conectați datele dvs. de acces la instrumentele de Business Intelligence pentru analize avansate.
Exemplu practic: Raport anual de vânzări
Să ne imaginăm un raport anual de vânzări pentru magazinul nostru online:
- Antet raport: Titlu, an, sigla companiei.
- Rezumat executiv: Diagramă cu bare care arată vânzările lunare.
- Detalii pe categorii:
- Tabel cu vânzările pe categorii de produse.
- Diagramă circulară care arată distribuția vânzărilor.
- Cei mai buni clienți: Lista primilor 10 clienți cu totalul achizițiilor lor.
- Tendințe: grafic cu linii care compară vânzările din ultimii 3 ani.
- General: Data generării raportului, numărul paginii.
Cod VBA pentru a actualiza graficul de vânzări lunare:
Private Sub ActualizarGraficoVentas()
Dim ctl As Control
Dim rst As Recordsetset ctl = Me.Graficul vânzărilorset primul = CurrentDb.OpenRecordset('SELECT Luna, SUM(Total) AS SalesMonth FROM Sales GROUP BY Luna')
ctl.RowSource = primul.Numectl.RowSourceType = „Tabel/Interogare”
ctl.ChartType = xlColumnClustered
ctl.Titlul diagramei = „Vânzări lunare”
Sfârşit Sub
Raportarea personalizată și analiza datelor sunt componente cruciale ale utilizării avansate a bazelor de date cu Access. Prin stăpânirea acestor tehnici, veți putea extrage informații valoroase din datele dvs. și le veți prezenta în mod eficient către diferite audiențe. Nu uitați întotdeauna să vă adaptați rapoartele la nevoile specifice ale publicului dvs. și să mențineți un echilibru între exhaustivitatea informațiilor și claritatea prezentării.
Automatizare cu macrocomenzi și VBA
Automatizarea este cheia pentru îmbunătățirea eficienței și funcționalității bazelor de date Access. Atât macrocomenzile, cât și Visual Basic pentru aplicații (VBA) oferă instrumente puternice pentru automatizarea sarcinilor repetitive, implementarea unei logici de afaceri complexe și crearea de soluții personalizate.
Introducere în macrocomenzi în Access
Macrocomenzile sunt secvențe de acțiuni pe care le puteți crea fără cunoștințe de programare . Sunt ideale pentru sarcini simple și repetitive.
Avantajele macro-urilor:
- Ușor de creat și modificat
- Nu sunt necesare cunoștințe de programare
- Sigur și ușor de depanat
Exemplu de macrocomandă simplă pentru a deschide un formular:
- Creați o macrocomandă nouă
- Adăugați acțiunea „OpenForm”.
- Selectați formularul pe care doriți să îl deschideți
- Salvați macro-ul
Macrocomenzi avansate
Macro-urile pot fi mai sofisticate:
- Macro-uri condiționate: Ei execută acțiuni în funcție de condiții.
- Macro-uri de date: Ei efectuează operații asupra datelor din tabele.
- Macro-urile interfeței cu utilizatorul: Personalizează experiența utilizatorului.
Exemplu de macrocomandă condiționată:
Si ! > 1000 Entonces
AplicarDescuento
MostrarMensaje
FinSiIntroducere în VBA
VBA este un limbaj de programare cu funcții complete care oferă o flexibilitate și o putere mai mare decât macrocomenzile.
Avantajele VBA:
- Control deplin asupra logicii și fluxului programului
- Integrare cu alte aplicații Office
- Abilitatea de a crea funcții personalizate
Pentru a începe cu VBA:
- Deschide Editorul Visual Basic (Alt + F11)
- Introduceți un nou modul sau formular
- Scrieți codul VBA
Bazele VBA
Câteva structuri fundamentale în VBA:
- Variabile și tipuri de date:
Dim nombreCliente As String
Dim edad As Integer
Dim precioTotal As Currency- structuri de control:
If edad >= 18 Then
MsgBox "Eres mayor de edad"
Else
MsgBox "Eres menor de edad"
End IfPentru i = 1 La 10Debug.Tipăriți i
Apoi eu
- Funcții și subrutine:
Function CalcularDescuento(precio As Currency) As Currency
If precio > 100 Then
CalcularDescuento = precio * 0.1
Else
CalcularDescuento = 0
End If
End FunctionSub Actualizați inventarul()' Cod pentru a actualiza inventarul
Sfârşit Sub
Automatizarea sarcinilor comune
Exemple de sarcini pe care le puteți automatiza:
- Import și export de date:
Sub ImportarDatosExcel()
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "TablaDestino", "C:\Datos\Archivo.xlsx", True
End Sub- Trimiterea de e-mailuri:
Sub EnviarInformeEmail()
Dim objOutlook As Object
Dim objMail As Objectset objOutlook = CreateObject(„Outlook.Application”)
set objMail = objOutlook.CreateItem(olMailItem)Cu objMail
.La = «[e-mail protejat]»
.Subiect = „Actualizare baze de date”
.Corp magazin mobil = „Baza de date a fost actualizată.”
.Atașamente.«C:\Rapoarte\Raport lunar.pdf»
.Trimiteți
Sfârşit cu