Centar za edukaciju-BiH



#1 11.01.2012 14:02
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Problem sa logiranjem
U aplikaciji koristim formu za logiranje na kojoj imam Kod:
PreuzmiIzvorni kôd (vbnet):
  1. Private Sub Korisnik_AfterUpdate()
  2. M_Oper.OperID = Me.Korisnik.Column(0)
  3. M_Oper.KorImeO = Me.Korisnik.Column(1)
  4. M_Oper.ImeO = Me.Korisnik.Column(2)
  5. M_Oper.PrezO = Me.Korisnik.Column(3)
  6. End Sub
U modulu imamfunkcije:
PreuzmiIzvorni kôd (vbnet):
  1. Function tkoRadiIme()
  2. tkoRadiIme = M_Oper.ImeO
  3. End Function
  4.  
  5. Function tkoRadiPrezime()
  6. tkoRadiPrezime = M_Oper.PrezO
  7. End Function

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?

Slicice prilozenih slika:
Image1.jpg
Tip datoteke:Informacije o tipu datoteke za:jpg jpg
Preuzimanja:241
Velicina datoteke:71.79 KB
Velicina slike: 486 x 429 Pikseli


Pozdrav
Ovaj post je ureden 1 puta. Posljednja izmjena 11.01.2012 14:03 od strane pmiroslav. ↑  ↓

#2 11.01.2012 15:48
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,612


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
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#3 11.01.2012 15:54
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Problem sa logiranjem
Imam tabelu za logovanje, a zove se A_Logiranje
Pozdrav
↑  ↓

#4 11.01.2012 16:49
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,612


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
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#5 11.01.2012 19:36
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


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:
Informacije o tipu datoteke za:rar  LogiranjePM.rar
Preuzimanja:227
Velicina datoteke:30.51 KB


Pozdrav
↑  ↓

#6 11.01.2012 21:13
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,612


Predmet:Re: Problem sa logiranjem
Pa ja sam ovo napamet kucao bez tvojih tabela.
Mislio sam da ces popraviti.
PreuzmiIzvorni kôd (Visual Basic):
  1. Function UcitajOper()
  2. Dim Rs As Recordset
  3. Dim Db As Database
  4.  
  5. Set Db = CurrentDb()
  6. Set Rs = Db.OpenRecordset("SELECT TOP 1 * FROM A_Logiranje ORDER BY VrijemeLog DESC")
  7. M_Oper.OperID = Rs!KorisnikID
  8. Rs.Close
  9. Set Rs = Db.OpenRecordset("SELECT * FROM tblOperatori WHERE KorisnikID=" & M_Oper.OperID)
  10. M_Oper.ImeO = Rs!FirstName
  11. M_Oper.PrezO = Rs!LastName
  12. 'M_Oper.KorImeO = Rs!KorIme ovo neznam odkle citas i dali jos sta citas.
  13. Rs: Close
  14. Set deb = Nothing
  15. End Function

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#7 12.01.2012 10:04
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Problem sa logiranjem
Citiraj zxz:

'M_Oper.KorImeO = Rs!KorIme ovo neznam odkle citas i dali jos sta citas.
[/code]
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.
Pozdrav
↑  ↓

#8 12.01.2012 10:26
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,612


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.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#9 16.01.2012 18:20
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


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
Pozdrav
↑  ↓

#10 16.01.2012 19:26
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,612


Predmet:Re: Problem sa logiranjem
Uf u pravu si potpuno.
Ja nisam razmisljao da ti imas visekorisnicki sistem.
Znaci da treba odraditi ponovno logiranja kada se to desi a ne citati u bazi.
Znaci islo bi na svim ovim procedurama iz oper.
Function tkoRadiIme()
if format$(M_operID)="" Then
docmd.Openform "Imeformezalogovanje"
endif
tkoRadiIme = M_Oper.ImeO
End Function
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

Stranice (2):1,2


Sva vremena su GMT +02:00. Trenutno vrijeme: 11: 32 am.