[ drezboy @ 19.06.2009. 08:23 ] @
Kao sto se vidi iz naslova, imam problem sa aplikacijom koja se bavi racunanjem prosjecne potrosnje goriva sluzbenih automobila u okviru jedne firme, u kojoj sam poceo raditi kao pripravnik.

***********************
1. Imam formu za unos u tabelu Putovanja. Problem je taj da bi pri svakom sledecom unosu u tu tabelu, bilo pozeljno voditi racuna da vrednost iz KrajnjeKM postaje vrednost za polje PocetnaKm, ali naravno KrajnjaKM iz prethodnog Putovanja (za isto vozilo, odnosno IDVozila, izabrano u combo box-u). To sam pokusao rijesiti kodom

Private Sub PocetnaKM_GotFocus()
Me.PocetnaKM.Value = Me.KrajnjaKM.Value
End Sub

s tim sto mi to nije pomoglo jer cita Pocetnu i Krajnju km sa iste forme, odnosno istog putovanja, sto nije cilj.

2. Isti problem mi je i za datume razduzivanja i zaduzivanja vozila, odnosno ogranicavanje korisnika na slobodne termine (da ne bi neko greskom upisao vreme zaduzuvanja kola u vremenu kad su ta kola vec zaduzena od strane drugog vozaca npr).

3. Najbitniji problem - Sam prikaz statistike, odnosno forma MainForm / tab Prikaz podataka / dugme Prikaz2. Ono bi trebalo da prikuplja podatke iz gornjih combo boxova i na osnovnu toga formira karakteristiku i prikazuje je u nekoj subformi. Upit koji bi trebalo da radi to, a ne radi, je qComboBoxVozac.
**************
Unapred se slazem sa svim negativnim komentarima u vezi dizajna. Ipak mi je ovo prva aplikacija u accessu i prvi dodir sa accessom i vba-om. A i ja sam daleko od nekog ko ima smisla za dizajn.

E da, u pitanju je access 2003.

Hvala!

[Ovu poruku je menjao drezboy dana 19.06.2009. u 10:03 GMT+1]

[Ovu poruku je menjao drezboy dana 19.06.2009. u 10:17 GMT+1]

[Ovu poruku je menjao drezboy dana 19.06.2009. u 11:26 GMT+1]

[Ovu poruku je menjao drezboy dana 19.06.2009. u 15:03 GMT+1]
[ Catch 22 @ 19.06.2009. 10:38 ] @
Probaj (otprilike na brzinu) ovako nekako:

Code:

Private Sub PocetnaKM_GotFocus()

'Me.PocetnaKM.Value = Me.KrajnjaKM.Value - ovo ne valja!!!

Me.PocetnaKM.Value = DMax("KrajnjaKM", "Putovanje", "IDVozila = " & Me.IDVozila)

End Sub



Komentar:
DMAX pronalazi najveću vrednost u tabeli "Putovanje" u polju "KrajnjaKM" za vozilo čiji "IDVozila" je jednak trenutno aktivnom (odabranom) na tvojoj formi...
[ drezboy @ 19.06.2009. 10:45 ] @
Hvala Catch 22, tvoj kod za prvi dio problema radi posao.
[ Zidar @ 19.06.2009. 17:00 ] @
Nisam bio shvatio da si bas bas pocetnik. Ovakva aplikacija prelazi mogucnosti absolutnog pocetnika. Problemi u dizajnu baze nisu tako ocigledni, ali ih ima i dovesce te u corsokak. Sve i da nema problema u dizajnu, priroda problema koji resavas je takva da zahteva mnogo expertskog programiranja i razumevanja. Wizardi ovde ne pomazu.

Ono sto ima u knjigama i sto se uci na fakultetu iz oblasti projektovanja baza podataka uglavnom ne pomaze u situacijama koje se bave redosledom dogadjaja (pocetna i krajnja kilometraza) i raznim vremenskim podacima (vreme zaduzenja i vreme razduzenja). Slucajevi tipa magacin, kasa, personalno su mala deca za probleme koji se bave vremenima. tamo je svaka transakcija enzavisna od svake druge transakcije. Ovde nije. Tamo svaka kolona zavisi samo od PK i niceg vise, ili se bar tako moze postaviti baza. Ovde to ne moze, pogotovo u Accessu. Ima razloga zasto u svim firmama vec postoje programi z aknjigovodstvo ali ne psotoje programi za putne naloge i sipanje goriva.

Zato, ako ikako mozes, bezi od ovog problema jer ces vrlo brzo doci u situaciju da nema pomoci.

:-(
[ Zidar @ 22.06.2009. 13:45 ] @

@ drezboy
OK, malo sma preterao. Ovo je za pocetnika nemoguc zadatak samo ako postoji kratak rok za izradu baze i programa. Ako nema roka, onda mozemo da pokusamo da objasnimo i nekako resimo probleme koje sam naveo. Problem je sto si vec napravio kao neke forme, kverije, izvestaje, a bez jasne slike sta i kako treba da se uradi, pa imas utisak da samo treba da resis jednu zackoljicu i sve ce dalje ici bez problema. Nece. Uradio sio sto si mogao, dalje ne moze, sa ovim sto imas, bez obzira na pomoc sa foruma...

Ako ima s neograniceno vreme, jedno mesec dana ili malo vise, mozemo nesto da probamo da uradimo. Za pocetak nam opisi proces koji tvoj sistem treba da podrzi, da krenemo odatle. Sve sto si od programa napravio, ne moj da bacis, ali skloni u stranu za neko vreme i ne gledaj uopste. Zaboravi wizarde za izradu bilo cega, pocni da citas neku knjigu o Accesu ili poseti neki sajt iz teme korisni linkovi. Ima ih i na srpskom/hrvatskom/bosanskom/crnogorskom/vojvodjanskom i zahvaljujuci nasem urodjeniom talentu za jezike sve ces moci da ih citas kao da je jezik bas tvoj :-)
[ Take 5 @ 22.06.2009. 21:15 ] @
Citat:
Zidar: ...Ima ih i na srpskom/hrvatskom/bosanskom/crnogorskom/vojvodjanskom...

Vi to kanda u Kanadi nešto znate, što nama Vojvođanima još nije poznato?
[ drezboy @ 23.06.2009. 07:27 ] @
Parlam i engleski, pored ovih silnih jezika koje si nabrojao , tako da sam poceo citati onu knjigu Sam's Teach Yourself Microsoft Office Access 2003 in 24 hours. Rok za izradu zadatka je prvobitno bio kratak, jako kratak (taman 24h da procitam ovu knjigu plus koji sat ), no sad je produzen. Nemam bas mjesec dana, no imam rok do kraja ovog mjeseca da dobro definisem rad sa bazom i svedem moguc broj gresaka korisnika na minimum. A sam prikaz statistike cu naknadno raditi, jos ni meni nije jasno receno sta je sve cilj.

Kao sto se dalo zakljuciti iz gornje prepiske, zadatak je prosjecna potrosnja goriva sluzbenih vozila. Sto se tice tog samog unosa, nadam se da cu se sam izboriti sa njim ovih dana, cim dobijem neku smisleniju cijelinu, uplodovacu ga, pa cu pitati za dalje savjete. Mislim da ce biti tako razumljivije i vama, nego da sad pocnem objasnjavati cijeli problem.

Citat:

pa imas utisak da samo treba da resis jednu zackoljicu i sve ce dalje ici bez problema. Nece.


Slazem se sa konstatacijom da se nove zackoljice javljaju svakim danom, tako da sam i sam odlucio prvo dobro definisati unos.
[ Zidar @ 23.06.2009. 14:07 ] @
@Take 5: Ne znamo nista vis enego vi, ali kad gledas sa strane ponekad vise vidis nego onaj ko je u sred guzve. Meni se ne dopada to sto vidim sa strane i voleo bih da gresim... No, kako rece Boris Dvornik u jednoj seriji 'necu politiku u moju butigu'

@Drezboy: Pitao sam da nam opises proces koji tvoj sistem treba da podrzi. "Kao sto se dalo zakljuciti iz gornje prepiske, zadatak je prosjecna potrosnja goriva sluzbenih vozila" Ovo nije opis procesa. Kao sto se da zakljuciti, mi smo to i zakljucili, ali nam to nista ne pomaze. Opisi malo detaljnije. Kakva je firma, kakva su vozila u pitanju, da li se vozaci menjaju, kako se trenutno vodi evidencija o utrosku goriva, gde se goribvo uzima (javne pumpe, javne pumpe odredjenog dobavljaca, firmina pumpa), da li se vozila garaziraju u firmi ili van firme, ko ce da unosi podatke u program, sa kojih dokumenata (rputni nalozi i slicno). Sve to utice na dizajn baze podataka i programa koji ce to sa bazom da radi. A sve to nam nisi rekao, pa necemo biti u stanju da procenimo sta valja.

Ako ces prvo da resis unos, znaci li to da si vec resio samu bazu podataka?

Postoje dva razloga sto takvi programi jos ne postoje ili ako i postoje, ne rade. Jedan smo spomenuli, tesko za modeliranje i programiranje. Drugi problem je sto to niko ne zeli. Mozda rukovodstvo i zeli, ali oni koji koriste vozila to zasigurno ne zele i sabotiraju na svakom koraku. Zasto bi neko zeleo da prati potrosnju goriva? Pa zato sto se gorivo krade. Sluzbena kola se koriste za privatne poslove, tako je bilo i bice. Privatan Yugo trosi 6.5, a sluzbeni 16.5 na 100 km. Zasto? Kako cemo to da uzmemo u obzir pri unosu?



[ Leruman @ 23.06.2009. 14:20 ] @
Neki predlozi pre nego sta zaronis u detaljniji rad posto sam imao iskustava sa proracunom potrosnje goriva i radnim nalozima

1. Da bi mogao da radis statistiku koja ce nekom da koristi trebao bi da imas i prosecnu potrosnju goriva za vozilo koje posmatras. Prikaz samo tipa vozilo potrosilo 200 l na 4000 km nema neku veliku upotrebu, prikaz potrosilo vozilo 150% od prosecne potrosnje za predjenih 4000km je mnogo bitnije za tvoje sefove.
2. Moras da pravis presek stanja i predjene kilometra za jedan odredjeni period. Mi smo to postavili na jedan mesec, ali ti mozes da uzmes duzi ili kraci period u zavisnosti od toga kolika je eksploatacija vozila ili na koji period ti se trazi statistika.
2. Prelazak iz perioda u period. Moras da obracunas i kolicnu goriva koja je ostala u rezervoarima pri preseku stanja jer ona utice na potrosnju goriva. Ovo je dosta bitnije kod terentnog programa gde su rezervaori reda 300 -600l pa ako preostane 200l t moze dosta da utice na prosecnu potrosnju, za putnicki program mozes to da ostavis u drugom koraku,

Ovo su mozda malo naprednije ideje i ne tako vezane za sam Access ali je bitno da ih imas u vidu odmah da ne bi imao problema kasnije ako lose postavis bazu.

@Zidar: Postoje programi za putne naloge i sipanje goriva, za odrzavanje vozila, na njima sam na tezi nacin naucio baze i SQL : ))
[ Zidar @ 23.06.2009. 15:45 ] @
@Leruman:"@Zidar: Postoje programi za putne naloge i sipanje goriva, za odrzavanje vozila, na njima sam na tezi nacin naucio baze i SQL : )) "

Svakako da postoje, ali to nije zadatak za pocetnke. Naglasak na na njima sam na tezi nacin naucio baze i SQL : )) SQL deo nije jednostavan a nije ni programiranje koje se trazi. Traze se tehnike programiranja i SQL trikovi koje jednostavno nije moguce nauciti citajuci "Teach Yourself Access in 24 Hours".

Ko zavrsi kurs prve pomoci, nece mu dati da operise srce, a ni slepo crevo, a ni bilo kakvu ranu koja je vise od ogrebotine. I kad zavrse medicinski fakultet, prvo budu 'stazeri' koji sticu iskustvo uz iskusnije kolege. E, ali softver,to moze svakojako :-))

:))
[ drezboy @ 24.06.2009. 08:06 ] @
Kada zavrsim unos i formiram bazu do kraja, cim to prodje sve recenzije sefova, stavicu vam taj dio aplikacije na raspolaganje, pa ce biti jasni svi procesi. Pokusao bih ja sve to objasniti, ali je to malo komplikovano jer se zahtjevi mjenjaju iz dana u dan (moze se reci iz sata u sat).

Znate li koji automobil najbolje ide preko lezecih policajaca? Pa sluzbeni. To je bila mala digresija podstaknuta onom tvojom opaskom o potrosnji goriva za sluzbena i privatna vozila.

Sad konkretno pitanje. Pri unosu, imam nekoliko formi. Izgled forme je sljedeci: nekoliko text boxova, list box u kojem se nalaze vec uneseni rekordi i dugme "dodaj". Svako tekst polje je unboundovano, jer se pri pokusaju unosa novog imena, u list box-u filtriraju rezultati, pa tek na dugme "dodaj" se vrsi upis u bazu. Slijedi kod koji radi u pozadini dugmeta "dodaj".


Code:

Private Sub bDodajVozaca_Click()
On Error GoTo Err_bDodajVozaca_Click
Dim temp1, temp2 As String
Dim temp3 As Integer

  
    temp1 = Ime.Value
    Ime.ControlSource = "Ime"
    temp2 = Prezime.Value
    Prezime.ControlSource = "Prezime"
    temp3 = JMBG.Value
    JMBG.ControlSource = "JMBG"
    DoCmd.GoToRecord , , acNewRec
    Ime.Value = temp1
    Prezime.Value = temp2
    JMBG.Value = temp3
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Exit_bDodajVozaca_Click:
    Exit Sub

Err_bDodajVozaca_Click:
    MsgBox Err.Description
    Resume Exit_bDodajVozaca_Click
    
End Sub
Private Sub bZatvoriVoz_Click()
On Error GoTo Err_bZatvoriVoz_Click


    DoCmd.Close

Exit_bZatvoriVoz_Click:
    Exit Sub

Err_bZatvoriVoz_Click:
    MsgBox Err.Description
    Resume Exit_bZatvoriVoz_Click
    
End Sub

Ovaj kod radi posao za sve slucaje, sem za slucaj kad je kljuc tabele AutoNumber. Kako to rijesiti? Kako natjerati Access pri "odvezivanju" polja, zapamti gdje je stao sa AutoNumberom, a ne krene iz pocetka kad ga opet zavezem.

Da bi bilo malo jasnije, slijedi attachment. Tabela vozac ima kljuc JMBG koji nije AutoNumber, tako da nema problema, ali Vozilo i VrstaGoriva imaju taj problem.

@Leruman: hvala, sigurno korisne sugestije
[ Zidar @ 24.06.2009. 14:03 ] @
Citat:
Kada zavrsim unos i formiram bazu do kraja, cim to prodje sve recenzije sefova, stavicu vam taj dio aplikacije na raspolaganje, pa ce biti jasni svi procesi. Pokusao bih ja sve to objasniti, ali je to malo komplikovano jer se zahtjevi mjenjaju iz dana u dan (moze se reci iz sata u sat).

Slusaj, nisam pitao da nam stavis neki deo aplikacije na raspolaganje. Pitao sam da nam objasnis proces. Medjutim, odbijas da nam objasnis proces, jer je komplikovan (valjda nismo dovoljno pametni da shvatimo?), a i zahtevi se menjaju iz dana u dan, to jest iz sata u sat. I ti vec imas forme i konkretne probleme. Ti vec napravio aplikaciju, gomile formi, kod, sve, a zahtevi se jos menjaju. Zar ne mislis da malo trcis pred rudu?

Meni lici da ti nisi bas absolutni pocetnik, imas neko iskustvo u nekom drugom okruzenju, razlicitom od Accessa i sad pokusavas da nesto uradis na brzaka. Access nije programersko okruzenje, Access je baza podataka. Neke stvari se u Accesu rade veoma drugacije nego u drugim jezicima. Ima razloga sto u Accesu postoje bound forme i uglavnom se koriste, jer se tako mnogo lakse i brze radi, pogotovo ako je baza dobro dizajnirana. Nije problem kad neko ne zna, problem je kad neko pogresno zna. Cini mi se da imamo takav problem i nazalost ne mozemo ga resiti, jer ti vec imas u glavi kako ces resiti problem, samo te neke sitnice blokiraju. A problem je verovatno u temelju na kome gradis resenje. Verovatno je problem u samoj bazi , zatim u nacinu na koji se bazi pristupa pomocu programa (osnovna konstrukcija programa). Rekoh, Access je baza podataka i postoje nepisana pravila kako se baza 'pokriva' aplikacijom. vecina uspesnih Access programera svesnio ili nesvesno radi po tim pravilima. E, sad dolazis ti sa ili bez iskustva i odlucujes da radis po svojim pravilima.

Ako neko ima vremena, izvolite pomoci.



[ drezboy @ 24.06.2009. 14:17 ] @
Naravno da se ne srecem prvi put sa programiranjem, tj imao sam ga na fakultetu (Java, SQL...). Ali nikad nisam koristio access i vba.

I ne, ne mislim da niste vi dovoljno pametni da shvatite proces, vec stoji ono da se zahtjevi mijenjaju. Nisam ja kriv zbog toga. Evo (attachment) kako mi trenutno izgleda baza, sto ne znaci da ce takva i ostati. Ako ce to nekome koristiti, nek je slobodno rabi.
[ Zidar @ 24.06.2009. 16:10 ] @
Pre nego sto neko bude rabio prilozenu bazu, evo nekoliko problema koji mogu proizici iz iste

Baza ne pokriva prosto ‘Pracenje utroska goriva’ nego bogami troskove putovanja, sa dnevnicama, akontacijama, troskovima. Sta god da pokriva, cisto sa tehnicke strane gledano, ovo su problem:

1. Za jedno isto putovanje (IDPutovanje) moze stajati jedan vozac u tabeli Putovanje, i potpuno drugi vozac u tabeli SipanjeGoriva.
2. Isto je za vozilo. Jednom putovanju se moze dodeliti jedno vozilo, i kad se sipa gorivo za to putovanje, moze se dodeliti potpuno drugo vozilo.
3. U bilo koje vozilo moze se sipati bilo koje gorivo. Ja ne bih voleo da mi neko sipa dizel u glfa benzinca, nito obrnuto. Benzin u dizelasa.
4. Vozac moze biti u isto vreme i saputnik, i vozac, na istom putovanju.
5. Saputnike mozemo dodavati po volji, nema nicega sto nas ogranicava (nalog z aputovanje, osobe na nalogu i slicno)
6. Jedna ista destinacija ce se ponavlajti u tabeli Destinacija, al ice svaki put imati drugi IDdestinacije. Neka su nam blagosloveni autonumber kljucevi, bez njih bi ovo bilo jako tesko postici 
7. Rekord u tabeli SipanjeGoriva ne moze da postoji dok ne postoji record u tabeli Putovanje. To je OK ako se gorivo sipa samo za vreme putovanja. Da li neko mozda zavrsi putovanje, a ne sipa gorivo? Da li se gorivo sipa kad je rezervoar prazan ili se sme sipati samo kad je vozilo na putovanju?
8. Dalje, kako dolazis do podatka o sipanom gorivu? Kada se unosi u bazu? Koliko vremena protekne od kreiranja rekorda u tabeli Putovanje do trenutka kreiranja rekorda u tabeli SipanjeGoriva?
9. Kako sprecavas da se jedno sito sipanje zavede u bazu recimo tri puta. Isto putovanje, isto vozilo, isti datum, isto sipanje, sve isto. Samo razliciti IDSipanja svaki put. Neka su nam blagosloveni autonumber kljucevi, bez njih bi ovo bilo jako tesko postici 

10. Vozac moze nezavisno od putovanja da dobija dnevnice, akontacije id a pravi troskove. Zar nije to divno? Ne ides na put a dobijas dnevnice. Pa i ako ides na put, ne zna se koja je dnevnica za koji put. Niti koji trosak se odnosui na koje putovanje. Niti koja akontacija sta pokriva. Bice veoma tesko knjigovodji da raspetlja sta je sta.

11. Putovanja su dozvoljena samo u firma koje imaju PIB. Nece biti nikakvih drugih putovanja? Mozda. Sta kada se jedno vozilo pokvari negde na putu, a drugo mu ode u pomoc. Gde je to drugo otislo? U koju firmu? Na koju destinaciju? Kako cemo ovo da zavedemo u bazu?


[ drezboy @ 24.06.2009. 16:27 ] @
Odogovori na 6 i 9 su ti dati u attachmentu, tacnije u formi Vozilo. Pogledaj kod koji radi u pozadini dugmeta "Dodaj".

Za ostalo ne znam, vidjecu, razmislicu, dosta mi za danas...

I ovaj kod slobodno rabite

Poz i hvala
[ Zidar @ 24.06.2009. 21:50 ] @
Onako na brzaka, ne bih preporucio ni kod da se rabi. Ako se jednom unese vozilo neke marke, forma ne dozvoljava da se unese vozilo iste marke, makar imalo drugaciji model i drugaciju registraciju.

Mislim da sad ti treba da pogledas kako kod radi ili ne radi. Necu da ti kazem gde je greska, pogledaj kod iza dugmeta i bice ti sve jasno.

I uvek postoji neki zli korisnik koji voli da ode u tabelu i da unese podatak koji ne valja, tamo gde ga kod iza dugmeta ne moze zastititi. Pod pretpostavkom da kod iza dugmeta radi korektno.

)
[ drezboy @ 25.06.2009. 13:32 ] @
Pa mogao bih tu unijeti provjeru za polje Registracija, to bi radilo u praksi (osim ako se mjenjaju registracije i ako bas za to vozilo kojem je promjenjena registracija bude pokusaja dupliranja unosa), ali ipak to nije univerzalno rjesenje i ne djeluje mi elegantno.

Pokusavao sam ovim kodom rijesiti taj problem, ali mi kompajler javlja gresku da RunSQL ocekuje SQL statement.

Code:
 
Dim SQLText As String
SQLText = "SELECT COUNT(*) As Suma FROM Vozilo WHERE Vozilo.Marka = '" & Me.Marka.Value & _
 "' AND Vozilo.Model = '" & Me.Model.Value & "' AND _
Vozilo.Registracija = '" & Me.Registracija.Value & "';"
DoCdm.RunSQL SQLText

... pa bih u nekoj if petlji ispitivao Sumu i na osnovu toga dodavao slog u bazu, ili javljao poruku o gresci,
Tu mi je malo zapelo...

Sto se tice zastite baze, slusam, citam i usvajam predloge.

Citao sam na ovom forumu o odvajanju baze, mdb i mde fajlovima, no jos nisam pokusavao...


[Ovu poruku je menjao drezboy dana 25.06.2009. u 14:54 GMT+1]

[Ovu poruku je menjao drezboy dana 25.06.2009. u 14:55 GMT+1]

[Ovu poruku je menjao drezboy dana 25.06.2009. u 14:56 GMT+1]
[ drezboy @ 25.06.2009. 14:43 ] @
Evo rjesenja!!!
Code:

Set db = CurrentDb()
LSQL = "SELECT COUNT(*) As Suma FROM Vozilo WHERE Vozilo.Marka = '" & Me.Marka.Value & "' _ 
AND Vozilo.Model = '" & Me.Model.Value & "' AND Vozilo.Registracija = '" & Me.Registracija.Value & "';"
Set Lrs = db.OpenRecordset(LSQL)
    
If Not Lrs.EOF Then
     brojPostojecih = Lrs("Suma")
End If
Lrs.Close

If brojPostojecih = 0 Then
    pisi u tabelu
ElseIf brojPostojecih >= 1 Then
        MsgBox "Uneti slog vec postoji u tabeli"
 End If

[ Zidar @ 25.06.2009. 15:20 ] @
Ne razumes sutinu. Ovi problemi se ne resavaju u programu, resavaju se u dizajnu tabela. Unique index po one tri kolone bi resio problem bez i jedne linije koda. Ocuvanje integriteta podataka se ne resava programiranjem, resava se dizajnom tabela i relacija. Tako se u Accesu radi. Pokusaj da se to resi programiranjem je cisto gubljenje vremena, beskorisno utroseno vreme i energija. A i ne mozes sve da pokrijes, prave se greske, izgledas pred korisnikom kao glupan, iako si verovatno dobar programer. U Accesu se ne pisu programu, nego se razvijaju sistemi koji treba nesto da rade. Razviti sistem i napisati program nije isto. Druga su pravila, drugi su metodi, sve je drugacije. I ne izgleda onako kako ti Microsoft kaze u svojim wizardima i templates. To pokusavam da ti objasnim, ali dzabe, ti neces slusas.

Sta mislis, koliko ce ti ovakvih problema naci korisnik uprvih pet minuta kad mu das da koristi program, i kako ce se to odraziti na tvoju reputaciju i kredibilitet? I koliko ce vremena proci dok napravis nesto sto uopste moze da radi, a da nema gresaka?

[ drezboy @ 27.06.2009. 12:18 ] @
Trudicu se da ubacim i one unique vrednosti po kombinacijama kolona.

Danke.

[Ovu poruku je menjao drezboy dana 27.06.2009. u 13:32 GMT+1]
[ Zidar @ 29.06.2009. 14:05 ] @
Ovo bi ti moglo biti interesantno:

http://www.zpr.fer.hr/zpr/Link...amp;mid=494&language=hr-HR
[ drezboy @ 29.06.2009. 18:10 ] @
Gledao sam ono, ima korisnih stvari. Manje vise sam sredio neke pomenute probleme, ali jos ih je ostalo.



1. problem

Mogucnost da se vozac pojavljuje kao i suvozac - to bih rijesio sql-om. Jednostavno da pri odabiru suvozaca (combobox) izbacim izabranog vozaca. Ili tako ili da mjenam tabele i da dodaje neke neke atribute pri zaduzivanju kola, jedan atribut da bude suvozac, drugi vozac. Prvo mi se cini lakse.

2. problem

Sipanje goriva - Mogucnost sipanja goriva i kad se ne ide na put, tj vozilo ode samo na pumpu.

Onaj autonumber rijesavam kodom, nemam vremena vratiti se nazad... Koliko sam shvatio ti si mi predlozio da se unistim trenutne kljuceve i da za vozilo jednoznacno odredjuju registracija + marka + model. Ako sam dobro shvatio. Imacu to na umu za inace.

Da li imas neki predlog za ona dva problema? Tj imate...

[ Zidar @ 29.06.2009. 20:19 ] @
Citat:
Mogucnost da se vozac pojavljuje kao i suvozac - to bih rijesio sql-om. Jednostavno da pri odabiru suvozaca (combobox) izbacim izabranog vozaca. Ili tako ili da mjenam tabele i da dodaje neke neke atribute pri zaduzivanju kola, jedan atribut da bude suvozac, drugi vozac. Prvo mi se cini lakse.

Ovako kako si postavio reliciju izmedju tabele Vozac i Saputnici, ispada da saputnik i ne moze da bude nista drugo nego sam vozac. Jos bolje, vozac ce sam sebi biti saputnik nekoliko puta. Zatim, SQL i combo box nemaju veze jednno s drugim, veruj mi na rec. Da bi trebalo da menjas tabele, trebalo bi, i to debelo. Ne radi se o tome sta je lakse, nego sta je ispravno. Ne da bismo isterivali akademsku pravilnost nego ono sto je 'lakse' nece da radi.

Problem 2: sipanje goriva bez da vozilo ide na put. ne mozes ga resiti nikako, jer je svako sipanje evano za putovanje, tako si napravio bazu. Ovako akko si napravi, ne moze se sipati gorivo a da vozilo ne ide na put. Sipanje je vezano za putovanje. Sad vise ne znam o cemu je baza - o potrosnji gotriav ili pracenju radnih naloga, ili oboje. Koji god da je slucaj od ova tri, baza ne valja. A ti pokusavas uporno da resis probleme baze progarmiranjem. To ne moze i ne mogu ti pomoci, jer jos uvek ne znamo kakav problem resavas.


Problem 3: jedinstveno odredjivanje vozila: da ti nije palo napamet da mozda i registarski broj vozila jedinstveno odredjuje vozilo, a ne nekakav autonumber, za koji ponovo nemas vremena? ne znam u kojoj si zemlji, u staroj YU registartska tablica se ne prenosi sa vozila na vozilo....


Pusti pricu, pozuri ti sa programiranjem, ima mnogo da se programira ne bi li ispravio greske lose napravljene baze.

[ captPicard @ 30.06.2009. 17:54 ] @
Zidar, ne sumnjam u tvoje znanje, ali jeza me prolazi kada čitam tvoje postove, preplašiš čovjeka

Šalu na stranu. Kao šta ti svi kažu, pusti ovo šta si počeo raditi, stavi najprije problem na papir, [1]definiraj ŠTA taj program mora raditi. Zidar ti je lijepo [2]nabrojao desetak problema na koje moraš paziti. Nakon toga [3]kreiraj tabele sa najosnovnijim poljima (na papiru), za koja si SIGURAN da moraju sadržavati. Kada to napraviš, [4]poveži tabele prateći (barem pokušaj) 3NF. Kako budeš povezivao tablice, tako češ vjerojatno nalaziti nove "greške", ali ćeš ih puno lakše riješiti nego da ovako nafrfljaš bazu, pa da onda pitaš zašto ti nešto ne radi. Kada to napraviš, onda kreni raditi forme, izvještaje, itd. Svi savjeti su dobronamjerni. A sada kreni sa [1]!

Pogledaj si malo ovdje:

http://www.databaseanswers.org...dels/vehicle_mileage/index.htm

http://www.databaseanswers.org...odels/vehicle_rental/index.htm