Se deschide formularul in Design View. Dublu-Click pe patratelul din Stanga-Sus a ferestrei formularului, si se deschide fereatra de proprietati a acestuia.
In fereastra de proprietati, tabul Format in general sant necesare de vazut numai urmatoarele proprietati (ele pot fi schimbate si cu dublu-click pe valorile cu care apar in fereastra):
Caption - Titlul ferestrei.
Default View - O fereastra poate sa aibe mai multe vizulizari. Ca o fereastra asa cum incercati dvs sa o proiectati (Single Form), ca mai multe formulare unul sub altul care pot fi parcurse cu o bara de derulare (Continuous Forms), exact ca un tabel (Data Sheet), ca un PivotTable, sau ca un grafic. Aceasta proprietate stabileste vizualizarea normala default a ferestrei atunci cand e deschisa fara nici o optiune pentru vizualizare.
Allow Form/Datasheet/PivotTable/PivotChart View - Stabilesc care vizualizari sunt permise si care nu pentru fereastra.
Scroll Bars - Cum sant folosite barele de derulare ca sa nu incurce.
Record Selectors, Navigation Buttons, si Dividing Lines fac ca o fereastra sa apara ca o inregistrare. O ferestra clasica are False pentru aceste proprietati.
Auto Resize nu l-am inteles.
Border Style - stabileste daca fereastra sa aibe border (chenar), daca sa aibe border redimensionabil (tragand de el) sau nu, sau cu border si modala. In legatura cu a fi sau nu modala este si proprietatea Modal din tabul Other al ferestrei de proprietati, de vazut in Help unde sunt prezentate amandoua.
Min Max Buttons si Close Button - ce butoane sa aibe fereastra.
Un Query poate fi folosit exact ca un tabel, o diferenta ar fi daca inregistrarile pot fi modificate sau nu. Acest lucru poate fi stabilit si la nivelul formualrului (inregistrarii) sau al unui control (un ComboBox de exemplu).
Printr-o interogare de selectie se pot modificarea inregistrarile din tabelul de baza, atentie!
Pentru adaugarea in lista a unor noi Nume/Prenume puteti sa incercati tratarea evenimentelor BeforeUpdate ale celor doua ComboBox-uri din formular. Pentru asta se poate porni si din tabul Event al ferestrei de proprietati.
Cod: Selectaţi tot
Private Sub Nume_Angajat_BeforeUpdate(Cancel As Integer)
Dim rst As Recordset
If Nume_Angajat.ListIndex = -1 Then
If MsgBox("Un nou Nume nu a fost recunoscut." & vbflcr & _
"Doriti sa il adaugati in lista?", vbOKCancel, "Nou Nume") = vbCancel Then Exit Sub
Set rst = CurrentDb.OpenRecordset("Denumire_Nume", dbOpenDynaset) 'dbOpenTable
'Dynaset e bun nu numai pentru tabele ci si pentru interogari
' rst.EditMode = adEditAdd 'sau
rst.AddNew
rst.Fields("Nume") = Nume_Angajat.Text
rst.Update
rst.Close 'Asta nu stiu daca este neaparat necesara
Nume_Angajat.Requery
End If
End Sub
Private Sub Prenume_Angajat_BeforeUpdate(Cancel As Integer)
Dim rst As Recordset
If Prenume_Angajat.ListIndex = -1 Then
If MsgBox("Un nou Prenume nu a fost recunoscut." & vbflcr & _
"Doriti sa il adaugati in lista?", vbOKCancel, "Nou Nume") = vbCancel Then Exit Sub
Set rst = CurrentDb.OpenRecordset("Denumire_Prenume", dbOpenDynaset)
' rst.EditMode = adEditAdd 'sau
rst.AddNew
rst.Fields("Nume") = Prenume_Angajat.Text
rst.Update
rst.Close
Prenume_Angajat.Requery
End If
End Sub
Access spre deosebire de celelalte programe Office foloseste doua bblioteci de tipuri. Biblioteca Access, si o biblioteca pentru lucrul cu datele.
In Access sunt posibile doua tipuri de aplicatii:
1) Locale (si nu numai), numite de tip Jet SQL Engine (sau ODBC !?!), care folosesc pentru lucrul cu datele biblioteca de tipuri DAO.
2) De retea, numite de tip "data access page", care folosesc pentru lucrul cu datele biblioteca ADO. In legatura cu care eu nu am nici un fel de experienta.
Dumneavoastra ati mers pe a doua varianta, si nu stiu in ce masura poate sa functioneaze bine ce am incercat eu.
Fara stabilirea proprietatii Limit to List (= False), din tabul Data al ferestrei de proprietati a ComboBox-urilor, sant permise si nume/prenume care nu se regasesc in acele tabele. Dvs ati lasat-o asa, proprietatea trebuie stabilita la True. Solutia mea incearca sa rezove problema inainte de a se declansa o eventuala eroare din aceasta cauza.