bdrago
Član broj: 25965 Poruke: 132 *.dialup.blic.net
|
Evo ovako:
Imam tri glavne tabele: Clanovi, Knjige i Poslovanje sa poljima:
(polja napisana velikim slovima su primarni kljuc)
Clanovi (BRC, PrezimeIme, Zanimanje, Adresa, Mjesto, Telefon, DatRodjenja,
DatUpisa, DatClan, Napomena)
Knjige (INVBR, Signatura, SifraZanra, NazivDjela, BrKopija, Stanje, Pisac, Izdavac,
GodIzdav, Napomena)
Poslovanje (IDZAPISA, Brc, InvBr, DatZad, ZadKopija, DatRazd, Bibliotekar,
Napomena)
Tabele Clanovi i Knjige su preko primarnog kljuca povezane sa tabelom poslovanje vezom: jedan prema vise.
Isto tako imam i pomocne tabele za sledeca polja: Bibliotekar, Pisac, Izdavac,
Zanr, Signatura i InvBr koje mi sluze za unos novih podataka: npr. ako dobijem novog izdavaca, unesem ga u tabelu Izdavac, a poslije gdje god treba, biram ga iz combo-box-a.
Baza bi trebala da radi ovako:
Kada dobijem novog clana upisujem mu podatke preko forme frmClanovi u tabelu Clanovi (DatClan=datum kada je platio clanarinu itd.)
Kada dobijem novu knjigu, upisujem je preko forme frmKnjige u tabelu Knjige (InvBr odredjuje svaku knjigu, BrKopija=ukupan broj kopija knjige, Stanje=broj kopija knjige koji se trenutno nalazi u biblioteci, itd.)
Na forni frmZaduzivanje imam dugme "Unesi podatke za novo zaduzivanje" pa preko njega unesem podatke za novo zaduzivanje (DatZad mora biti popunjen a DatRazd mora biti prazan).
Kada popunim podatke imam dugme "Zaduzi" pa kada ga pritisnem, program oduzme broj zaduzenih kopija od stanja.Kod je sledeci:
Private Sub Command25_Click()
If Not IsNull(Me!DatRazd) Then
MsgBox "Da bi mogli zaduziti knjigu morate unijeti podatke za novo zaduzenje!"
Exit Sub
End If
If Forms!frmZaduzivanje!pfmKnjige.Form.Stanje = 0 Then
Beep
MsgBox "Ova knjiga nema ni jednu slobodnu kopiju!"
InvBr.SetFocus
Exit Sub
End If
If IsNull(Me!DatZad) Then
MsgBox "Da bi mogli zaduziti ovu knjigu morate upisati datum zaduzivanja!"
DatZad.SetFocus
Exit Sub
End If
If MsgBox("Da li zelite zaduziti ovu knjigu?", vbExclamation + vbYesNo, "UPOZORENJE!") = vbYes Then
Forms!frmZaduzivanje!pfmKnjige.Form.Stanje = Forms!frmZaduzivanje!pfmKnjige.Form.Stanje - Forms!frmZaduzivanje.ZadKopija
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
Else
DoCmd.CancelEvent
End If
End Sub
Ako hocu da odustanem od zaduzivanja (u toku unosa) imam dugme "Odustani i obrisi zapis" sa kodom:
Private Sub Command32_Click()
DoCmd.SetWarnings False
If MsgBox("Da li zelite odustati od zaduzivanja?", vbExclamation + vbYesNo, "UPOZORENJE") = vbYes Then
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
Brc.SetFocus
Exit Sub
Else
InvBr.SetFocus
End If
End Sub
Na frmZaduzivanje imam dvije podforme: pfmClanovi i pfmKnjige, obe sa Enable=No, pa kada u formi izaberem Brc, dole se prikazu svi podaci za tog clana. Isto je i za knjigu.
Za razduzivanje je potrebno pronaci zapis koji hocemo da razduzimo i dovesti ga da bude tekuci, pa upisem DatRazd i vratim broj zaduzenih kopija na stanje. To radim preko combobox-a (preko IdZapisa, a imam u njemu i Brc, InvBr, DatZad i DatRazd=Null koji je nevidljiv). Kod je:
Private Sub Text54_AfterUpdate()
With CodeContextObject
DoCmd.GoToControl "[IDZapisa]"
DoCmd.FindRecord .Text54, acEntire, False, , False, acCurrent, True
End With
DatRazd.SetFocus
End Sub
Problem mi je sto IdZapisa odredjuje zadizivanje a ja u combo-box-u gledam Brc i InvBr.
Kada nadjem zapis, upisem DatRazd i pritisnem dugme "Razduzi" sa kodom:
Private Sub Command53_Click()
If IsNull(Me!DatRazd) Then
MsgBox "Da bi mogli razduziti ovu knjigu morate upisati datum razduzivanja!"
DatRazd.SetFocus
Exit Sub
End If
If MsgBox("Da li zelite razduziti ovu knjigu?", vbExclamation + vbYesNo, "UPOZORENJE!") = vbYes Then
Forms!frmZaduzivanje!pfmKnjige.Form.Stanje = Forms!frmZaduzivanje!pfmKnjige.Form.Stanje + Forms!frmZaduzivanje.ZadKopija
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
Else
DoCmd.CancelEvent
DatRazd.Value = ""
End If
End Sub
Imam i dugme "Vrati stanje knjige" za prisilne intervencije, gdje mozemo prepraviti stanje, sa kodom:(gdje mozemo ispraviti stanje)
Private Sub Command39_Click()
DoCmd.OpenQuery "QVratiStanjeKnjige"
End Sub
Imam i obicno dugme za brisanje zapisa.
Svi ovi dugmici su na TabControl sa tri strane: Zaduzivanje, Razduzivanje i Ispravke.
Izvjestaji nisu problem pa necemo o njima.
Znaci, bilo bi dobro da: kada pritisnem dugme za dodavanje novog clana, program sam procita vrijednost iz polja Brc na poslednjem zapisu i doda novi Brc za jedan veci. Isto vrijedi i za InvBr nove knjige (i za bilo koju drugu Access bazu moze se iskoristiti).
Eto, nadam se da se vidi osnovno.
Zahvaljujem na javljanju!
|