pmiroslav | 11.01.2012 14:02 |
---|---|
Predmet:Problem sa logiranjem U aplikaciji koristim formu za logiranje na kojoj imam Kod: PreuzmiIzvorni kôd (vbnet): U modulu imamfunkcije:
PreuzmiIzvorni kôd (vbnet):
I konačno na formi Text Box: KorisnikID Default Value =tkoRadiIme() & " " &tkoRadiPrezime() Problem je u tome Å¡to se često desi da se u tablicu u polje KorisnikID ne upiÅ¡e podatak, a on se koristi za potpis na računu itd. Å to bi mogao biti uzrok toga? |
|
Prilozi: Image1.jpg (Velicina datoteke:71.79 KB) |
zxz | 11.01.2012 15:48 |
---|---|
Predmet:Re: Problem sa logiranjem Pretpostavljam sta se desava. Imas formu za logovanje gdje se korisnik identifikuje i to drzis u memorijskim lokacijama: M_Oper.OperID M_Oper.KorImeO M_Oper.ImeO M_Oper.PrezO E sad ja nevidim da imas tabelu logovanja te da zapisujes vrime logovannja no nije to uzrok praznih polja. Prazna polja se upisuju onda kada dodje negdje do greske u kodu jer tada ove memorijske lokacije izgube vrijednosti. M_Oper je cini mi se moji nazivi koji su smjesteni u jednan klas modul i pored toga imamklasu za linkovanje kao i proceduru za presretanje gresaka i njihpv upis ako nisu predvidjene od programera tako da se nikako nemoze desiti ovo kao kod tebe. Sta trebas uraditi? Mozes jednostavno napraviti provjeru kodom: If M_operID="" Then Ovdje kod ili da se ponovo loguje ili ako imas tabelu logovanja ta ucita sve podatke ponovo? Function tkoRadiIme() if format$(M_operID)="" Then UcitajOper endif tkoRadiIme = M_Oper.ImeO End Function Function tkoRadiPrezime() if format$(M_operID)="" Then UcitajOper endif tkoRadiPrezime = M_Oper.PrezO End Function Function UcitajOper() Dim Rs as recordset Dim Db as database Set db=Currentdb() set Rs =db.Openrecordset("SELECT * FROM LOGOVANJE" itd. ako ima tabela logovanje ako ne moras ponovo pozvati formu za logovanje. End function |
pmiroslav | 11.01.2012 15:54 |
---|---|
Predmet:Re: Problem sa logiranjem Imam tabelu za logovanje, a zove se A_Logiranje |
zxz | 11.01.2012 16:49 |
---|---|
Predmet:Re: Problem sa logiranjem Function UcitajOper() Dim Rs as recordset Dim Db as database Set db=Currentdb() set Rs =db.Openrecordset("SELECT TOP 1 * FROM A_Logovanje ORDER BY VrijemeLog DESC" M_Oper.ID=Rs!KorisnikID rs.close set Rs=db:Openrecordset("SELECT * FROM L_Operatori WHERE OperID=" & M_OperID) M_Oper.ImeO=Rs!Ime M_Oper.Prezime=Rs!Prezime M_Oper.KorIMeO=Rs!KorIme Rs:close set deb=Nothing End function |
pmiroslav | 11.01.2012 19:36 |
---|---|
Predmet:Re: Problem sa logiranjem Pokušao sam primjeniti kako si mi rekao ali mi se kod unosa novog podatka zaustavi procedura i javlja grešku |
|
Prilozi: LogiranjePM.rar (Velicina datoteke:30.51 KB) |
zxz | 11.01.2012 21:13 |
---|---|
Predmet:Re: Problem sa logiranjem Pa ja sam ovo napamet kucao bez tvojih tabela. Mislio sam da ces popraviti. PreuzmiIzvorni kôd (Visual Basic):
|
pmiroslav | 12.01.2012 10:04 |
---|---|
Predmet:Re: Problem sa logiranjem Citiraj zxz: Ovo stvarno ne citam i ostalo je tu u brzini.
Čitam joÅ¡ prava korisnika i time pravim zabrane na otvaranje pojedinih formi. Inače primjenio sam tvoj kod i za sada radi dobro jedino sada moram pratiti kako će se ponaÅ¡ati ubuduće. |
zxz | 12.01.2012 10:26 |
---|---|
Predmet:Re: Problem sa logiranjem Radit ce to svoj posao sigurno. Samo moras popuniti sve variable M_Oper. Ja nisam znao sve sta ti je sta. |
zxz | 20.01.2012 15:36 |
---|---|
Predmet:Re: Problem sa logiranjem Neznam jesil ovo gore probao ali htio sam napomenuti kako bi to sve trebalo napraviti. Vidim da imas ovaj klas moful kao moj ili je moj. Da napomenem da u bilo kom programskom jeziku ako programiras pa napravis gresku koju nisi presreo program pada. Znaci rusi se. Zato je bitno presresti sve greske? Ja uz to imam nisz procedura jos. Imam i tabelu gresaka kao i tabelu vrsta upozorenja. Ima takav primjer negdje i na forumu sa obrazlozenjem. Imam proceduru koja se zove GreskaZ sa ulaznim parametrom broja greske. Sada kada pisem procedure onda pisem: on eror goto greska na dnu procedure imam Greska: GreskaZ(Err.number) Znaci pozivam proceduru greskaZ kojoj prosljedjujem broj greske. Procedura trazi gresku u tabeli pa ukoliko je ne nadje onda izbacuje err.number i err. deskription te to zapisuje u drugu tabelu sa imenom objekta na kojem se pojavila. Tako kada poslije dodjes i pregledas svoj app. vidjet ces sve gde se greske javile a ti ih nisi predvidio. Naravno ovo mozes napraviti da ti salje i emailom. Na svim formama imas dogadjaj Private Sub Form_Error(DataErr As Integer, Response As Integer) GreskaZ(dataerr) Response = 0 End Sub Znaci ovo na svakoj formi treba uraditi. Presresti greske ako se dogode. |
pmiroslav | 16.01.2012 18:20 |
---|---|
Predmet:Re: Problem sa logiranjem Izgleda da ovdje ipak imamo problem. Naime recimo da se ja ulogiram pod svojim imenom u 7:00 sati i ne izlazim iz aplikacije i sada se drugi korisnik ulogira sa drugog kompjutera u recimo 7:30 sati i on je sada zadnji na popisu logiranja. Ja sa svom kompjuteru pišem neki dokument i u potpisu dobijem ime kolege koji se ulogirao nakon mene. SELECT TOP 1 * FROM A_Logiranje ORDER BY VrijemeLog DESC |