[ unisoft @ 22.11.2008. 23:49 ] @
Ova tema se tice Login forme.Kada se neko uloguje u program u 1 tabelu treba da se smeste sledeci podatci : username, password , vreme i datum ulazka u program .Naravno treba da se pamte i oni pogresni unosi username i password sa datumom i vremenom njihovoga unosa.

Svaki predlog,tutorijal ,primer je doborodosao.

Ako mi neko odradi ceo kod za ovo sto meni treba ZAMOLIO BIH GA JOS JEDNU STVAR ,da svaki red koda,svaku funkciju objasni sta znaci.Ja sam jos uvek pocetnik i neke vam proste stvari meni se cine teske i mora neko da mi ih dobro objasni da bih razumeo.

Meni nije cilj da to sto mi neko uradi ja negde primenim ili da to nabubacim i samo teraj dalje.Vec mi je cilj da to razumem i da kasnije sam mogu u nekim drugim situacijama da to primeni sa nekim nadogradnjama toga koda ili modifikacijama.


Trazio sam nesto po forumu vezano za ovu temu i necu da kazem nista nisam naso.Nasao sam neke teme-kodovi vezani za ovu temu ( kod mene ti kodovi nisu radili ) ali posto sam rekao da sam pocetnik to mi nije bilo jasno.Ja sam se pojedinm ljudima obracao koji su odgovarali u tim temam i resavali odredjene delove problema ALI NIKO MI NIJE ODGOVRIO.

Pa se ovo prilikom izvinjavam moderatorima foruma ako je moja tema 100% kojim slucajem ista sa nekim temam jer nisam se setio za neko drugo resenje.Molim vas da ne briste mi temu ili pako ako je to problem kada mi neko odgovori ili pomogne u resavanju problema onda je obriste.

Hvala i pozdrav.
[ Trtko @ 23.11.2008. 09:09 ] @
Najlakše ti je da u accessu otvoriš HELP i pogledaš funkcije koje ima, i
onda si napraviš jednu formu s buttonom i onda u VB kodu ISKOPIRAŠ funkciju iz
HELPA i vidiš što radi.

I što je najvažnije moraš sam imati neku svoju logiku u riješavanju problema, jel svatko
od nas "programera" ima svoju logiku programiranja i stil programiranje.

neko će koristiti IF funkciju za ispitivanje vrijednosti a neko CASE ....

itd...

Zato ti sam napravi neku formu za lozinku pa je postavi na forum a mi ćemo ti pomagati da je
usavršiš do kraja

Pozdrav
[ unisoft @ 23.11.2008. 09:34 ] @
Ja sam napravio moju LOGIN formu.Napravio sam ja po veliku bazu.Ali ovo je deo onoga sto mene muci.Ja sam je zavrsio.Pa posto sam dokon ja ti malo da ubijem vreme na forumu.Odem na temu Access i krenem rednom da citam postove i kada naidjem u jednom postu kako se spominje ova moja deo moje teme i sam sebi rekoh ovo ne bi bilo lose da ubacim u moju bazu.Ja svak nedelje se setim necega sto ne bi bilo lose da se ubaci.Jer niko ne moze iz 1 puta da napravi ekstra bazu vec malim koracima dolazi se do ekstra baze.


Moja Login forma --> na njoj postoji TextBox sa imenom u svojstvima Username i jos jedan TextBox sa imenom Password , postoji button sa imenom Login.

Imam ja logike iha ha.Aj da kazem nisam profesionalac u Excelu ( skoro sam ) i funkciju IF sam koristio ihah.A i baze koje sam pravio u Accessu a verujem i svakome IF funkcija je osnovna ko je programirao.


i lepo sam na Buttonu-Login otisao na svojstvo Click on Event i upisao sledeci kod

IF Username="admin" and Password="admin" Then
MsgBox "Cestitamo uneli ste ispravne podatke , sada imate pristup ,vbInformation,"Login"
DoCmd.OpenForm "F_Glavna_forma"

i to je daj deo koda.Dobro imam ovde jos funkcija ( EleseIF) i one mi sluze za prikazivanje poruke ako neko unese pogresne podatke.

Sta meni treba.Kao prvo savet strucnjaka.Da li za ovo sto meni treba mora da se pravi tabela.

A meni treba sledece : bez obzira da li je neko uneo ispravne login podatke da kada klikne na button-login da se u bazi sacuva uneti username,passsword ,datum i vreme .E sada ako bi u bazi postojalo dugme logout da sacuva i datum i vreme izlaska iz baze.

Ovo cuvanje datuma i vremena ne bi bilo lose na ne mora da postoji button logout vec automacki kada neko klikne na x Accessovog prozora po zatvaranjuj programa da upise datum i vreme.

Ako vam nije jasno sta trazim u ovoj temi molim vas recite mi da smislim bolje objasnjene moga programa.



A ja TVRTKO imam za tebe jedno piranjce.Kako posta tako iskusan programer.Koje si to knjige sve procitao kada imas takvo znanje.Molim te reci mi .
[ unisoft @ 23.11.2008. 10:28 ] @
Access: DateAdd Function


In Access, the DateAdd function Adds a specified time interval to a date.

The syntax for the DateAdd function is:

DateAdd ( interval, number, date )
You can use the DateAdd function to add a specified time interval to or subtract a specified time interval from a date. For example, you can use DateAdd to calculate a date 15 days from today or a time that is 30 minutes from now.

interval is the interval of time you want to add to date. The following is a list of valid interval values.

Interval Description
yyyy Year
q Quater
m Month
y Day of year
w Weekday
ww Week
h Hour
n Minute
s Second


number is the number of intervals you want to add to date. It can be positive (to get dates in the future) or negative (to get dates in the past).

date is the date to which the interval is added.

Examples
DateAdd ('m', 4, #01/22/2004# ) returns 05/22/2004
DateAdd ('yyyy',3, #11/10/2003# ) returns 11/10/2006


VBA Code
Dim MyNumber As Integer
MyNumber = DateAdd('d',45,#12/09/1998#)


This example takes a date and, using the DateAdd function, displays a corresponding date a specified number of days in the future. Now the MyNumber variable would contain the value of '01.23.1999'.

SQL query
You can also use the DateAdd function in a query.

SELECT DateAdd('d',45, Now()) AS Expr1
FROM Orders

Posto sam malo googlao o mom problemu nadjoh ovo.
Sta ti mislis moze li ovo da posluzi za resavanje moga problema
SQL query
You can also use the DateAdd function in a query.

SELECT DateAdd('d',45, Now()) AS Expr1
FROM Orders


pretpostavljam da funkcija za vreme je TimeAdd .

E sada,naravno u Click Event login buttona kako ja da mu isprogramiram da po kliku on u tabeli upise datum i vrememe na osnovu ovih funkcija.

valjda bi islo TimaAdd and DateAdd e sada samo kako da se ovo sacuva.
Ispravi me ako nisam na dobrom putu
[ Trtko @ 23.11.2008. 10:52 ] @
Pa gle, nisam te htio uvrijediti.
Htio si upisivati krive pokušaje logiranja, pa naravno da ti treba tablica u koju češ to upisivati.

a ako neznaš kako, evo kako, naravno prvo moraš tablicu iskreirati sa potrebnim poljima



Dim d As Database
Set d = CurrentDb
Dim ev As Recordset
Set ev = d.OpenRecordset("select * from tblupislozinka" )

If ev.EOF() Then
ev.AddNew , dodavanje novog polja
Else
ev.Edit 'mjenjanje
End If

ev.Fields("datum_logiranja") = now()
ev.Fields("lozinka") = txtlozinka
' ...... i tako dalje za ostala polja za koja želiš da ti budu u tablici


ev.Update
ev.Close

Set d = Nothing

.......
A što se tiče pročitanih knjiga iz accesa ni jednu. koristim samo help,
ali programirao sam ja i u Clipperu , i na VAX - u ( VB modificirani ) , BAAN ( tu je pa C jezik) . Dbase 5.0 7.0. foxpro ..itd
pa sve skupa brat bratu aktivno programiram od 1984 ( tu ne brojim sinclareov ZX 80 koji je bio bumm 1980)

I još se dana danas učim i od Getsbia i od Zidara I od domaci_a_nas i nije me sram to priznat, a smatram se dbrim programerom,

Što je "dobar" programer .

1. kad ti program radi 7 godina i ni jednom ne rikne ( moja greška ) a nisam ugovorio godišnje održavanje
2. Kad priznaš sam sebi da još mnogo toga neznaš


eto , bez ljutnje

Pozdrav tebi






[ Trtko @ 23.11.2008. 11:01 ] @

da se ispravim , sad če svaki put upisati pokušaj logiranja i kod odjave s tima da pozoveš funkciju
korisnike bi mogao imati u posebnoj tablici, iz koje bi vukao username i password
pa bi onda mogao provjeravati dal je dobro unešena loz i pass pa tek onda upisati u bazu




Function Prijavi_odjavi()

Dim d As Database
Set d = CurrentDb
Dim ev As Recordset
Set ev = d.OpenRecordset("select * from tblupislozinka" )

ev.AddNew , dodavanje novog polja

ev.Fields("datum_logiranja") = now()
ev.Fields("lozinka") = txtlozinka
' ...... i tako dalje za ostala polja za koja želiš da ti budu u tablici


ev.Update
ev.Close

Set d = Nothing

end function
[ unisoft @ 23.11.2008. 11:22 ] @
E hvala.Odoh sada nesto sa calom da sljakam oko nasih lokala.Kada zavrsim veceras cu ovo isprobati kako funkcionise.I ne znam otkud ti to da sam se UVREDIO.Nisam se uopste uvredio ???

Ako veceras ne uspem da resim ja to sto sam radio sacuvacu i poslati ti na e-mail ili postviti na neki free upload i ovde dati link da pogledas i kazes mi u cemu je problem ako ih budem imao.

Jos jednom izvinjenj.Veoma cenim sto si brzo odgovorio na moja pitanja ali stvarno sam u skripcu sa vremenom da biih odma seo i izprobao.Imam neke trenutno obaveze a kada ih zavrsim - veceras cu ovo isprobati.

E znas ne bi bilo lose da ako I( ZMENIS TVOJE POSTOVE )ti nije problem ispod svakog reda koda napises sta se desava i kratko objasnjenje za tu funkciju.Meni nije cilj da ja ovo samo iskopiram i eto dobio sam gotovo resenje i bol... me uvo a nije i da nabubacim.Vec mi je cilj da ovo naucim i da razumem svaki red koda.

prvo da ti kazem u ovim tvojim codovima jedno sto mi je poznato je sledece : Dim,as,AddNew ali bez ovoga ispred es. ,if,else if,end if ,end sub,now(),

I zato te molim jos jednom ako mozes da izmeni svoj post da das objasnjenje svake funkcije sta radi.

Hvala jos jednom i pozdrav.ZZzzz
[ unisoft @ 23.11.2008. 23:42 ] @
Trtko ima problem.Posle dugo mozganja tvoga koda video sam koja polja imas u kodu u kojoj tabeli i kada sam prekopirao tvoj kod nije mi radilo

Poslen mnogo pokusaja stalno mi je prijavljivao da Dim d As Database nije nesto u redu sa ovim.

Molim te da mi pomognes da resim ovaj problem.Ovo je bilo neizbezno da se desi jer kao sto sam rekao ja sam samo poetnik i ako nemam detaljno objasnjenje svakoga koda desi li se neki problem ja ne znam u cemu je problem.Kao sto sam reko bas zbog ovakvih stvari meni nije cilj da samo to sto si mi ti dzabe uradio ( od cega ti nemas nikakve koristi ) da ja samo kopiram vec ako se desi i neki problem da razumem sta ovi kodovi znace i lepo idem 1 po 1 i najdem u cemu je problem.MOLIM TE JOS JEDNOM ZA POMOC

Uz poruku sam prikacio deo moje ogromne baze koju sam napravio - OSTAVIO SAM SAMO SLEDECE : imaju 3 forme.1 forma se odnosi na upis novog korisnika koji ce imati pristup programu - za ovu formu postoji i tabela.Onda postoji forma login.U ovu formu se upisuje username i password i klikom na button login ako su podatci ispravni ( proverava se da li postoje u tabeli forme upis novoga korisnika ) onda se u tabelu koja sluzi samo za registraciju vremena i datuma logovanja , upisa usernmae i passworda ( ispravnih i neispravnih ) .KAda se sve ovo zavrsi onda se pali glavna forma.

A da moram te zamoliti jos jednom da mi navedes objasnjenje za sledece funkcije sta rad i za sta sluze
As Database , CurrentDb , As Recordset , Set ev=d.OpenRecordset ("select * from tblupislozinka") , ev.EFO() , ev.Fields , ev.Update.ev , Close , Set=Nothing
moram jos jednom da kazem ovo mi je potrebno jer mi nije cilj da samo neko sto mi je gotovo dao da koristim vec i da razumem.



Gledajuci ove tvoje funkcije - mislim na ovu d.OpenRecordset ("select * from tblupislozinka") posto si mi rekao da bih trebao imati tablicu u kojima bih cuvao podatke o korisnicima i kada neko pokusa da se loguje u program prov se proveri da li u toj tablici postoji takav username i password ako postoji onda se upisuje u sledecu tablicu datum,vreme ... e mene zanima sto mi ne radi ovaj kod

posto znam za funkcija select sluzi za pozivanje i * ( zvezdica) sluzi za pretrazivanje cele tabele ja uradim ovako moj kod za proveru .


Na formi postoje 2 textbox-a .Prvom je dato ime textbox1 a drugom je dato ime txtbox2.textbox1 u njemu se upisuje username a u textbox2 password.Na tu formu je dodato jedno komadno dugme kome je dato ime login.
U propertis login-a u Eventu - event on click sam napisao sledeci kod ali mi ne radi .ZASTO ???? A da zaboravio sam reci da se tablica u kojoj se upisuju korisnici ima ime tbl_korisnika ( tu se nalaze sledeca polja-fild popertis : auto numer , username , password )

If txtbox1.Text = ("select * from tbl_korisnika") And txtbox2.Text = ("select*from tbl_korisnika") Then
MsgBox "vasi podatci postoje u bazi", vbCritical, "poruka obavestenja"
MsgBox "sada imate pristup programu", vbInformation, "ulazak u program"

DoCmd.Close
DoCmd.OpenForm "F_Glavna_forma"



Ako neki drugi forumas zna za sta ove funkcije sluze njihova objasnjenja su takodje dobrodosla

Morao sam da izmenim poruku jer sam zaboravio da navedem sledece sto pise u pravilniku foruma.


Koristim MS Access 2002 ( iz razloga sto imam knjigu za njega )

Ako je tebi lakse da uradis u nekoj drugoj verziji slobodno to uradi.Posedujem sve verzije MS Access-a od 2000 pa do 2007.

Prikaceni fajl je radjen u MS Accessu 2002

AJDE DRUGI FORUMASI UKLJUCITE SE U RASPRAVU.STA JE OVO SAM JEDINO TRTKO POMAZE LJUDIMA.DA JBRE DA JA ZNAM ACCESS JA BIH ODVOJIO MALO VREMENA I ZA DRUGE

Jos jednom HVALA TI PUNO ZA SVE Trtko.Pozdrav od Ivana iz Sevojna.

[Ovu poruku je menjao unisoft dana 24.11.2008. u 00:58 GMT+1]

[Ovu poruku je menjao unisoft dana 24.11.2008. u 03:29 GMT+1]

[Ovu poruku je menjao unisoft dana 24.11.2008. u 03:29 GMT+1]

[Ovu poruku je menjao unisoft dana 24.11.2008. u 03:38 GMT+1]
[ unisoft @ 24.11.2008. 03:00 ] @
Guglah malo vezano za ovu funkciju i meni je kod u redu.Nije mi jasno sto ne radi.

Ovo je oblik funkcije select i ima vise oblika

SELECT What FROM WhatObject WHERE Expression;
Pirmeri :

SELECT * FROM Students WHERE Gender="Male"; ovde se desava seldece : u celoj tabeli Students traze se svi zapisi u koloni Gender sa male.Ovo dole su primeri sa jednoga sajta kako se moze upotrebljavati.

SELECT * FROM [Students] WHERE [Gender]="Male";

SELECT Students.FirstName, Students.LastName

FROM Students WHERE Students.Gender="Male";

SELECT [Students].[FirstName], [Students].[LastName]
FROM [Students] WHERE [Students].[Gender]="Male";

SELECT * FROM Students WHERE Gender<>"Male";

SELECT LastName, FirstName, Gender, EmailAddress
FROM Students
WHERE Gender='Female'
ORDER BY LastName


E JA STVARNO U OVAKVIM STVARIMA POLUDIM.Sto moja nece da radi kada je 100% uredu.Napravio sam novu bazu - sve ispocetka i lepo napisao sledecu funckiju i ono nece da radi.ZASTO


If txtbox1.Text = ("select * from tbl_korisnika") And txtbox2.Text = ("select*from tbl_korisnika") Then
MsgBox "vasi podatci postoje u bazi", vbCritical, "poruka obavestenja"
MsgBox "sada imate pristup programu", vbInformation, "ulazak u program"

DoCmd.Close
DoCmd.OpenForm "F_Glavna_forma"

evo za lakse razumevanje moze i ovako kod da se napise ( mislim konkretno na prvi red )

If txtbox1.Text = ("select username from tbl_korisnika") And txtbox2.Text = ("select password from tbl_korisnika") Then
MsgBox "vasi podatci postoje u bazi", vbCritical, "poruka obavestenja"
MsgBox "sada imate pristup programu", vbInformation, "ulazak u program"

DoCmd.Close
DoCmd.OpenForm "F_Glavna_forma"

probao sam i sa ovim kodm ali ne radi




If ("select username from tbl_korisnika WHERE username=txtbox1.Text") Then



stvarno vas molim da mi pomognete u suprotnom cu ciknuti majkemi.Izlude me ovo programiranje


[Ovu poruku je menjao unisoft dana 24.11.2008. u 04:29 GMT+1]
[ domaci_a_nas @ 24.11.2008. 08:52 ] @
Evo prijatelju da ne cikneš... Završio sam ceo posao umesto tebe, baš kako si želeo.

Nisu mi jasni ljudi koji se muče oko nečega što toliko ne znaju, a imaju lokale i dovoljno novca da plate. Šta ćeš kada ti se otvori glavna forma, opet ćeš tražiti pomoć od nas? Napisao sam komentare iznad svake linije koda da bi ti bilo bar malo jasnije šta program radi.

PS. Trle, čast mi je što si me uvrstio u spisak ljudi od kojih učiš
[ unisoft @ 24.11.2008. 10:04 ] @
Eto kakvih ljudi ima.Ti umesto Trila da pohvalis sto to citi, a ti ga zaje....Covek ima jednostavno dobru dusu i zeli da pomogne neznalicama.Ne znam za druge ali mislim da je proznao moju iskenost.Pogledaj vreme kada su postovi postavljani i editovani.Da ti znas sam do koje vreme ja ostajem uvece i googlam po netu citajuci razne clanke po MS Accessu da bih pokupio nove fore.A to sto se tice glavne forgme.Sta dada ,tada ce s opet da trazis pomoc od nas.Ako si pazljivo pratio pod temu Access foruma Elit videses da ima mojih 5-6 tema.JA sam lepo u ovj temi napisao vezano za ovaj problem sledece : od moje ogromne baze podataka ja sam samo kao sto pise u pravilniku foruma - obrisao sve nevazno da bi vama lakse bilo razumeti sta meni treba ( napomena jos jjednom tako pise u pravlilniku podforuma acceess).

Pa pogledaj gore u temama vrem samo kada su postavljanje.3 sata sam ja proveo barem gledajuci po netu razne tutorijale vezane za MS ACCEss i problem one moje funkcije sto nece da radi a 100% je ispravno napisana.I nisam dosao do resenja ovoga.Ja sam vas lepo zamolio.E sada vi ste mogli da pomgnete a i ne.Narvno pomogli ste.I za to vam HVALA PUNO.Ali zasto takav odgovor ???

If txtbox1.Text = ("select * from tbl_korisnika") And txtbox2.Text = ("select*from tbl_korisnika") Then


Izvini sto sam ti domaci_a_nas rekao ovo malo na grub nacin , ali morao sam.Na neki naci se me malo uvredi sa onim dole sto si napisao.Ma dobro ja nisam zlopmatilo i lako oprastam.Jedino sto mi smeta je sto si rekao ono za TRTK-a - on je bas kull lik i necu da dozvoljim ikome da nesto govori o njemu na njegov racun.Molim te nemoj da se uvredis.Ja mislim koliko sam dugo vremena izgubio kucajuci na ove teme da sam barem sa iskrenosti zasluzio barem bilo kakvu pomoc.

A da da ne bude da lazem tacno je da imam lokale.U stvari ne ja vec moj otac.On je TAKODJ PROGRAMER CEO SVO ZIVOT i PROGRAMIRA U COBOL SOFTWER-u.Pa ko kaze da ne placam .Pogledaj malo na krstarici forumu cini mi se tema SOFTWER.Sta sam postavljao.Sada kada je bio sajam knjiga u BG_u kupio sam brdo knjiga-potrosio 150 evra na knjige.Ne znam da li si ti iz BG-a ali moj otac nije od onih koji imaju pare ( imamo pare ) ali se zadovoljava malim stvarima a ostatak para cuva za pravljenje novih lokala.30 godina on voz ZASTAVU 101 .Kada je propala skoljka on je platio prebacivanje skoljke u novu.Jer ...,. ma dobro ja samo kazem nadam se da si razume poentu ovog-a....

Trebao si sam da razmislims.Dobro procitaj gore jedan njegov post sto je napisao meni kada sam ga pitao odklen njemu takvo znanje.Covek je lepo napisao da je dobar programer ali dobar programr je onaj koji sam sebi kaze da nije jos sve naucio.A to znaci da i dan dans uci.Da i njemu mozda neko pomaze na nekim forumima.Neko ko vise zna od njega u vezi programiranja.Kada je on bio pocetnik sigurno je i on po forukma postavlja teme u vezi svojih problema i njemu su tada DOBRI LJUDI POPUT NJEGA I TEBE POMAGALI.


Necu da kazem da ni ti nisi kull lik .HVALA I TEBI domaci_a_nas ali samo mi je smetalo to sto si rekao za TRTK-a.

HVALA VAM JOS JEDNOM ZA SVE STO STE MENI UCINILI i TRKT-u a i tebi DOMACI_A_NAS



[Ovu poruku je menjao unisoft dana 24.11.2008. u 11:15 GMT+1]
[ unisoft @ 24.11.2008. 10:21 ] @
E izvinjavam se sto nisam reko misljenje o odradjenom primeru.Prvi sam napisao onaj post pa tek onda gledah domaci_a_nas sta si uradio.Ekstra odradjeno a posebno mi se svidjaju ove dodante opcije za paljenje COMBO_BOXA I TEXTBOX_A.

Pohvale za lepa objasnjenja kodova.DA su svi tutorijali na interntu kao ovj sto si timeni napravio ja bi danas imao iha haj ZNANJA.

Ali meni i dalje nije jasno odaklen vama ova logika,Ovo znanje.Brate moj i ja citam knjige u vezi samog-a Visal Basica ( 2008 expres edition ) i za MS Access ali nemam ni priblizno znanja da bih napravio ovako nesta.Mislim ekstra.Mora da se ubiste od kinte ( od programiranja ).Ako je imate viska dajete malo meni :)

Ima za tebe jedno pitanje.Sto u tvojoj bazi tek KADA SE FORMA POKRENE VIDE SE EVNET DOGADJAJI A KADA JE FORMA U DESINGMODU ne VIDE SE EVENTI
??? kako ti je to uspelo svak ti cast. (nadam se da si razume sta sam te pitao.)


HVALA JOS JEDNOM EKSTERA ODRADJEN POSAO.

[Ovu poruku je menjao unisoft dana 24.11.2008. u 11:33 GMT+1]

[Ovu poruku je menjao unisoft dana 24.11.2008. u 11:34 GMT+1]
[ unisoft @ 24.11.2008. 11:44 ] @
Domaci_a_nas e TI SI PRAVA LISICA OD PROGRAMERA :).Joj brale mili umirem od smeha dok ovo pisem a recu i zbog cega.

Vec 2h sata ja razmisljam kako si ti ovo uradio.I vec kada sam odustao od toga - teo sam da tebe pitam kako si uradio.A prbel je u sledecem.Posto sam pokrenuo LOGIN FORMU tvoga programa primetim ja kada se klikne dugme combo-box u Gupbox-u tebi username je u obliku combo boxa a kada se klikne textbox usernmae je u obliku textbox-a.Brale mili ja rekoh kakav sam ja pocetnik kada prostu foru ne mogu da provalim.A drzim tebi neka predavanja o tome da sa ja pocetnik.Najvise me je cudilo kada pokrenem login forum polje username - njegovo svojstvo pise cboKorisnik a kada formu upalim u Desing modu pise txtKorisnik.Misli i misli , guglao sam po netu o ovome i nista.


Vratim ti se ja na kod i oci mi ispadose razmisljajuci kako mozes da u jednom polju imas dva butona : 1 text a 2 gupbox.text.


Kada ti ja vec samo sto nisam ciknuo.Kroz mozak mi sinu jedna ideja.DA OVA LISICA ( nemoj da se ljutis to si ti ) nije kojim slucajem nacrtala 1 kontrolu preko druge.KADA SAM VIDEO DA SI TO URADO JA SAM SKAKO OD SRECE STO SAM USPESNO RESIO PROBLEM KOJI ME JE MUCIO.

E sada do voga mozda i ne bi doslo da ti mi nisi objasni lepo sta svaki red koda znaci.Sada mora da ti je jasno sto ja hocu da CIKNEM kada programiram.

[ Trtko @ 24.11.2008. 13:04 ] @
Ma vraga je on LISICA , samo se jos nije otrijeznio pa zato tako dobro programira
Oteo moju metodu u programiranju i sad je svaki dan koristi.

A ta ti je metoda ( samo za starije i iskusnije programere, nikako za tebe i ostale neiskusne) faslin (gajba) pive na dan
Al sad cu ja preći na drugu metodu i neću je otkriti domacem_a_nas. Pa nek pukne od muke gad ga prešišam u programiranju


hehehehe

Pozdrav

a vidi što smo domaci_a_nas i ja napravili ,

http://www.elitesecurity.org/t329696-0#2000012

[ unisoft @ 24.11.2008. 14:18 ] @
Zasto sam ja rekao lepo da mi ispod svakoga reda koda objasnite sta ta funkcija radi i sta taj kod radi.Posto sam video da postoje 2 plja za upis.Jedan je textbox a drugi je combobox.Posto sam pogledao kod svatio sam da je jedno dodato svojstvo VISIBLE-> No.

I ovo svojstvo menja kodom na Yes :

txtKorisnik.Visible = Not ( cboKorisnik.Visible)
' objasnjenje ovoga reda koda koji je domaci_a_nas dao je sledeci : Text Box se prikazuje kada se sakrije Combo Box ( i svako ko je procitao bilo koju knjiku za Visual Basic od firme Biblioteka Knjiga ) ovaj red kod je veo jasan a i svi ostali iz pograma.



ovo znaci da tekst boks sa imenom txtKorisnik ce biti vidljim samo onda kada Tekst Boks sa imenom cboKorisnik ne bude vidljiv a nece biti vidljiv onda kada smo kliknuli u option gurp na button - Teks Box.

hehehehe

Pozdrav


PA NARAVNO Trtko .ZZZ i majketi promni ovaj nick ( ne znam da li si Srbina ali ako jesi smesniji NICK nisi mogao da smilis :) ) .

Aj majstore pozdrav mozda se cujemo na nekoj novoj temi.Sa ovim vasim kodovima i objasnjenjima kada ih proucim sigurno ce mi pasti nesto novo na pamet za uraditi i ako budem imao problema ete mene ponovo.

HVALA JOS JEDNOM
[ domaci_a_nas @ 24.11.2008. 15:05 ] @
Dragi unisoft,

ni Trle (ovako mu oduvek tepam jer ga mnogo gotivim) ni ja se ne ubijamo od para, a skoro najviše pomažemo. Ne ubijamo se od para jer svako hoće da napravi neki program, umesto da radi ono za šta se školovao. Zbog toga ja malo oštro i reagujem. Puno radim za jako male pare baš zbog tolike konkurencije, koja dolazi kod nas po "savet" a uzme pare u svoj džep.

Na kraju, moram priznati da mi nije jasno kako si u sledećem dijalogu došao do zaključka da sam uvredio Trleta, a zovem ga Trle upravo zbog nadimka koji je odabrao, baš je masan

Citat:
Trtko:I još se dana danas učim i od Getsbia i od Zidara I od domaci_a_nas i nije me sram to priznat, a smatram se dbrim programerom
Citat:
domaci_a_nas:PS. Trle, čast mi je što si me uvrstio u spisak ljudi od kojih učiš


Dobar si lik i drago mi je što sam ti pomogao.

Iskreni pozdrav
Nikola
[ unisoft @ 24.11.2008. 15:13 ] @
Pa smatrao sam da ovo njega vredja domaci_a_nas:PS. Trle, čast mi je što si me uvrstio u spisak ljudi od kojih učiš
[ domaci_a_nas @ 24.11.2008. 19:24 ] @
Prijatelju, ja sam samo rekao DA MI JE ČAST što me je ON SAM naveo kao osobu od koje uči... Pogledaj gornji citat... Kako to može da bude uvreda?
[ unisoft @ 24.11.2008. 22:22 ] @
morao sam da edituje poruku iz sledeceg razloga.Stutiram ovaj tvoj kod i ovo mi nije jasno


' Definisanje SQL izjave za traženje korisnika sa unetim korisnièkim imenom
strSQL = "Select * from tblKorisnika Where UserName = '" & txtKorisnik & "'"


= '" & txtKorisnik & "'" ovaj ovde deo .Zar nije bilo dovoljno samo txtKorisnik.Koju mi ovde ulogu ima Blenda (&) ona nam sluzi za spajanje a " sluzi za prikaz teksta ako neki deo koda ne zatvorimo od napred i od nazad '' onda nam se to smatra funkcijom VB-a a ako se zatvori samo rec.

I ako mozes da primets navodnici nisu jednaki.Na levoj strani si stavio 3 a na desnoj 5 ????

Molim za neko objasnjenje ovoga ako nije problem


A da jos ovo kako uspe da stavis 3 levo .Navodnici su ovo " ako si stavo 3 znaci da si stavo jedan navodnik i 1 ' ( kako da kazem 1 crticu ) a to onda znaci da sve poslen crtice je samo komentar - nije kod.

I malo bolje objasnjenje za ove 3 stvari

1:

Uspeh = txtSifra = RS!Password

ovde mi nije jasno kakvu ulogu ima ! znak uzvika.Mi smo tamo SQL upitom samo tazili username ali passowrd nismo.E onda ovaj deo koda posto mi nije bas jasan vuce u ovaj za sobom

Set RS =CurrentDb.OpenRecorSet(strSQL)

jel sa ovim CurrentDb on preko OpenRecrdSet ( strSQL ) prepoznaje tabelu koja se koristi i onda je celu prebacuje u RecordSet i tu cuva njene podatke.A onda se vracamo na onaj gore kod.

Uspeh = txtSifra = RS!Password .Sada posto on ima celu tablicu u RecordSet-u on je celu pretrazuje za Fild Name passowrd.

2:
'Izmenjen je redoslen sledece dve naredbe
DoCmd.OpenForm 'F_Glavna_Forma"
DoCmd.Close ac Form,Me.Name

dobro ovde prvi kod mi je jasan kao sto si moga videti u onom mom primeru jer sam ga ja napsiao bez icije pomoci.Nije mi jasan ovaj drugi kod.On zatvara formu ali tu mu nije jasno ovo

ac Form,Me.Name - objasnjenje

--------------------------------------------------------------------------------------------------------------------------------------------
3:
rec je o Query QruPregledlogovanja

MENI VRLO ZANIMLJIVA STVAR.Sto kod tebe kada pravim upit i dodam ove 2 tovoje tabele automacki se napravi odos izmedju njih 1 prema beskonacno

Posto na ovom polju sam veoma ,veoma slab,Sve sam ostalo da kazem 90% razumeo sem ova gore 3 reda koda koja mi parave dileme.Samo ako ti nije problem da mi detaljno kazes kao si napravio ovaj Query.Dobro znam osnovne stvari o upitama ali ovo je za mene previse.A da sto mi ovde zaplo za oko.MA a bre ti si SAMO TAKVA LISICA OD PROGRAMER.Kako si majketi uspeo da u Qeruy napravis RELATION SHIP.Dobro moze on da se napravi ali prikazivanje odnosa.mislim na ono 1 prema beskonacni.U prozoru RELATIONSHIP ja ovo umem da radim i baratam sa tim OK.Ali u Qeriy dodeljivanje odnosa ???

Nisam otvarao novi post vec sam ovaj editovao.

Evo mene posle 2h mozganja sta si ti ovde uradio.Jedva sam uspeo provaliti sta se desava.Najvise sto me je mucilo je sto u RELATIONSHIPU je bila samo jedna tabela a druge nije bilo.A znam ja sto si ti ti uradio -TO si ti namerno da bi mene malo mucio :).Slucajno ti ja kliknem da tu jednu tableu sto se vidi i izaberme Show Direct kad ono gle cuda pojavi se i druga tabela _ A SADA STO SE TICE PRAVLJENJA ODNOSA IMEDJU TABELA TO ZNAM.I sada mi radi tvoj upit u mojoj bazi podataka.Problem je u tome sto nije meni postojalo odnosa i onda nisam moga da napravim onaj upit.

-------------------------------------------------------------------------------------------------------------------------------------------


Ispravi me ako gresim.Posto si mi sve lepo objasnio do sada sto sam stigo , nema nikakvih problema sa razumevanjem i pamcenjem.Sao ov je za mene previse da naucim za 1 dan .Proce dani i dani dok ja ovo naucim.

Dobro niko nije postao programer za 1 dan ili mesec.Posle 2-3 godine rada moze da se kaze da si programer.Sada kada sam bio na sajmu knjiga kupio sam 4 knjige veezane za VB a i jos mnoge od KOMPIJUTER BILIOTEKE.1 knjiga - VB rad sa objektima , 2 knjiga - VB programiranje baze podataka , 3 knjiga - VB Cristal Report , 4 knjiga - VB Visual Basic Express 2005 ( ovu knjigu sam ranije procitao samo verziju za VB 6 ) I mogu da kazem da su ekstra odradjene.Nisam stigao jos ni jednu da procitam jer sam zauzet PREDAVANJIMA NA VISOJ SKOLI - SMER INFORMATIKA a i ispitima.Procitacu to caskom na raspusti sada.he he sta je to sam par hiladaj strana !!SMRC :)

Samo da napomenem da ne pomislite na ovo zbog skole :
NISTA OD OVOGA NE TREBA MI ZA SKOLU.Ovo mi je hobi i sa ovim ubijam vreme.
Otac mi se bavi programiranje i ima firmu.Zelim da naucim da programiram da bih
preuzeo njegov posao kada zavrsim skolovanje.A prvenstveno mi programiranje
treba jer posle planiram da se prebacim na FAKULTET U BG-u a tamo profesori
sto se tice znanja otkudaju.Pa bolje na vreme da se spremam.

Ma opuseno.Ocigledno si ti napisao dobro za tebe ali ja sam pogresno shvatio.Aj laku noc. ( ovo se odnosi na onaj tvoj post - gore )

[Blue]
KADA BUDES IMAO VREMENA POGLEDAJ PRIKACNI FAJL UZ PORUKU I RECI MI GDE GRESIM SA PREKUCAVANJEM KODA U MOJOJ BAZI.
[/Blue]






[Ovu poruku je menjao unisoft dana 25.11.2008. u 02:20 GMT+1]
[Ovu poruku je menjao unisoft dana 25.11.2008. u 04:51 GMT+1]
[Ovu poruku je menjao unisoft dana 25.11.2008. u 04:55 GMT+1]

[Ovu poruku je menjao unisoft dana 25.11.2008. u 04:56 GMT+1]
[ Trtko @ 25.11.2008. 07:32 ] @
Citat:
PA NARAVNO Trtko .ZZZ i majketi promni ovaj nick ( ne znam da li si Srbina ali ako jesi smesniji NICK nisi mogao da smilis :) ) .


Unisoftu, ovaj nick TRTKO sam dobio pred 24 godine, ti se vjerojatno nisi ni rodio, i nemislim ga mijenjati.
I ne znam kakve veze ima za moj nick jesam li srbin , hrvat , rus , amerikanac ????

O kodu
strSQL = "Select * from tblKorisnika Where UserName = '" & txtKorisnik & "'"

a ljepo sam ti rekao , napravi formu i malo testiraj , sve bi ti bilo jasno samo da si napisao

Msgbox strSQL

dobio bi u poruci ------> Select * from tblKorisnika Where UserName ='Trtko'

Hmmmmmmmmmm zašto baš u navodnicima jednostrukim a i što će navodnici
sad bi te trebali učiti koji su sve tipovi podataka, string , number , date......

Znači kad ti nešto nije jasno što češ dobiti u kodu programa ispod te linije lijepo si stavi da ti ispiše što dobivaš
i sve ti onda bude jasnije.


a onaj gore upit bi ti po seljacki glasio .

Odaberi mi sva polja iz tablice tblkorisni samo ako u polju username piše Trtko

jel sad jasnije, otvorit če tvoju tablicu i samo izdvojiti ta polja.
[ unisoft @ 25.11.2008. 09:26 ] @
Pa naravno :)
[ domaci_a_nas @ 25.11.2008. 21:52 ] @
Tršo, unisoft kaže da te vređam (vidi temu), ali ti ne misliš tako, jel' da?

unisoft, unicorn, kad si već pokupovao silne knjige, deder malo ih i pročitaj, pa nećeš valjda baš sve da pitaš? Ja mislim da si od mene dobio dovoljnu pomoć, ko hoće nek te uči
[ unisoft @ 25.11.2008. 22:45 ] @
Naravno da cu ih citati.Ali trenutno nemam toliko vremena.Sada kada dodje raspust cu sce procitati - baraem se nadam da cu stici sve da ih procitam.Trenutno sam u skripcu sa slobodnim vremenom.Sutra ujutu imamam kolokvijum iz jednog preddmeta na Visoj.Naravno da sam hteo da me toliko poducavate to bi naravno podrazumevalo placanje.

Ne zahavlih ti se sto si u onom primeru cak i vise uradio nego sto sam ja trazio.Dodao si neke stvari koje meni nisu bile potrebne.Dobo kada sam video sta si napravio reko sam samo SVAKA CAST .

Nego znas sta me jedino samo muci.Danas kada sam dosao sa predavanja i zavrsio neke obaveze odvojo sam 3-4 sata da se sa ovim bavim.



Ne znam u cemu gresim ALI BAREM 10 puta i vise sam pravio novu bazu.Sve ono u tvojoj sam odstampao , kodove , raspored tabela , polja u njima , upite , sva svojstva svakog dugmeta-labela .

I posto sam napravio novi BANCKO PROJECT ja krenem sa radom : sta se desi kada sam sve 100% isto uradio kao ti .Pokrenem ja formu i kada u tabeli lblKorisnici upisem username i password .Onda idem na formu da upisem USERNAME I PASSWORD i kliknem na dugme login ON MI NE PRIHVATA PASSWORD vec mi je password username .Znaci meni samo ulzai u program kada upisemza tectbox username USERNAME a za textbox password UZERNAME.


Gledao sam proveravao sve, odstampao moj kod i svako slovo ,zarez,broj razmaka izmedju slova se poklapa sa tvoji.I NE MOGU DA NADJEM U CEMU JE PROBLEM.Ajde da kazem da se nisam trudio.ALI STVARNO SAM DOSTA PUTA PROVERAVAO U CEMU JE PROBLEM ALI NISAM NASAO RESENJE.


Ima li nesto sto si ti uradio a da nije u kodu vec u podesavaju samoga MS Access-a.
[ unisoft @ 25.11.2008. 23:30 ] @
Ajoj majoko moja nemate pojma koliko sam srecan.Majkemi bog me ima u vidu.Necete mi verovati , pomislicete ja sam onaj koji samo ubija vreme na netu i zeza ljude zbog ovog sto cu reci : verujtemi kada sam otklono problem koji je naveden u predhodnom postu pocel su mi da idu suze na oci od srece.

Jedni problem koji sam imao je vezan sa onim ComboBox-om cboKorisnik.

Posto vidim da dosta ljudi prati ovu temu.Objasnicu lepo u cemu je problem jer ce 100% neko imati istih probleam ako bude zelo da ovo doda u svoju bazu.

Problem je bio sledeci :

kada kliknete na Toolbox da bi ste stavili kontrolu GroupBox na vasu formu pali vam se Winzard za tu kontrolu.Prvo korak vas pita zelite li da podatke vezete za neku tabelu ili ne.Birate prvi korak.U drugom koraku prebacujete sva 3 polja iz te tabele.Mene sto je ovde kocilo je ono u kodu cboKorisnik.Colums (2) ja sam stalno mislo na dve kolone prva je hide po difoltu GroupBox-a a druga je vidljiva.U toku rada sa windzardom MOZETE SAMO DA JEDNU KONTROLU PRIKRIJETE.A nama treba da su HIDE sledeca FILD NAME IZ TABELE tblKorisnici : ID i password.

kako se sakriva vise fild names-a .Pa ja to da priznam nisam imao pojma kako se radi.Nego kao sto sam rekao sam bog me ima u vidu i nije hteo da se vise mucim.Posto ste zavrsi sa svim koracima podesavaanja ComboBox-a ostaje vam samo da kliknete na BUTTON finis.

E kod posledenjeg koraka CoboBox winzarad U MOM PROBLEMU JE LEZAO SPAS.Kada sam vec popustio sa zivcima ja sam sebi rekao ma ko ga sisa odoh ja na spavanje sa ovim mogu da se bakcem drugi put vazniji je meni kolokvijum sutra da polozim nego da ovo resim.

I verovali ili ne na poslednjem koraku CoboBox winzarda slucajno ali slucano pomerim misa i kliknem da text HELP WITH THIS CONTROL.I otvori se help MS access-a.

Kada gle cuda tamo sve lepo objasnjeno kako se peske sakrivaju kontrole.

Hide a column in a list box or combo box on a form
In the ColumnWidths property box, enter 0 for the column or columns that you want to hide.
For example, suppose you have a bound two-column combo box that has a SupplierID column and a SupplierName column. The SupplierID column is the first column in the list. To hide the SupplierID column, set the ColumnWidths property as shown in the following illustration.

Colum Widths : svojstvo svake kolone koju smo na pravili ima odredjenu duzini.POSTAVLJE OVE DUZINE NA NULA SKRIVAMO TU KONTROLU

Set the SupplierID column (first column) to 0 to hide it.

Specify a width for the SupplierName column.

The SupplierID column is the bound column, even though it's hidden.

Note In a combo box, the first visible column is displayed in the text box portion of the combo box when the list isn't displayed. For example, the SupplierName column in the previous example would be displayed because the SupplierID column is hidden. If the SupplierID column weren't hidden, it would be the only column that was displayed


Ja ovo caskom odradim i sa OVIM SAM RESIO SVE PROBLEME I DILEME U VEZI OVOG PROGRAMCICA.


Da naravno da sam dobi i preveliku pomoc od vas.He he nadam se da cu jednoga dana ako se to desi zajednickim znagama pomagati DRUGIM FORUMASIMA U RESAVANJU NJIHOVIH PROBLEMA.Lepo je ciniti dobra dela.

Samo ja sam jedan od onih koji su se uverili DA VECINA LJUDI NA OVOM SVETU MRZE ONE KOJI ZNAJU VISE OD NJIH.A sa tim ljudima se prave ok do ne dobiju resenje svoga probelma a poslen ko ih sisa i njih ogovaraju na svakom koraku,cim im okrenu ledja.

Nadam se da ste se uveril da ja nisam takav.Mogli ste to da zakljucite iz toga sto sam iskreno sve pisao.

Sa ovomim postom zavrsavam pricu.Jer sam resio sve dileme i probleme u vezi ovog programcica.


Stripljenje je vrlina : ja sam ovo oklonio tek posle 10 sati mucenja .
[ unisoft @ 25.11.2008. 23:37 ] @
Tvrtko i domaci_a_nas LJUDI HAVLA VAM JOS JEDNOM NA POMOCI

pozdrav
[ Trtko @ 26.11.2008. 07:27 ] @
Domaci_a_nas pa naravno da me nisi s nicim uvrijedio.
hmmmmmmmm jedino to što više od mene možeš popiti,, ipak si mladji..... hehehe

Unisoft, nitko od nas nemože baš sve znati.
Recimo Zidar je maher u relacijama baza injihovom kreiranju , povezivanju ... itd , pa me nebude bilo sram njega pitat
ako negdje zapnem, Nikola barata dobro s VB ( skoro ko i ja , hehehehe ) , možda je u nekom dijelu programiranja bolji od mene , i zašto da se ja sad
mučim ako on to zna, pitat ču ga ako mi je to hitno potrebno... vjerojatno bi i ja to iskopao

Vidim da ti imaš veliku volju i ljepo je to i nastavi samo tako, ali mi se čini da nekako brzo odustaneš kad zapneš
ali moraš znati da je skoro sve moguće isprogramirati....a ako se baš neda... pa pametniji smo od kompjutora.. zahebemo ga pa i to riješimo.

Znači imaš HELP u accessu i u njemu ti je baš sve objašnjeno....ako neznaš što neka funkcija radi... kao što sam ti rekao
jednu formu jedan button i na njegov klik MSGBOX nek ti ispiše što dobiješ , a ti onda mjenjaj parametre u funkciji i
prati što se dešava, tako češ najlakše shvatiti što točno radi funkcija..

Ljep pozdrav


[ Miki2013 @ 15.09.2013. 20:52 ] @
Pozdrav!

Imam jedan problem koji ne mogu sam da rijesim.
Ako ima neko raspolozen da mi pomogne...
Naime, sljedeci kod koristim na dugmicu za prijavu u bazu

Code:
Dim db1 As DAO.Database
    Dim rst1 As DAO.Recordset
    Set db1 = CurrentDb()
    Set rst1 = db1.OpenRecordset("tbllogovanja", dbOpenDynaset)
    rst1.AddNew
    rst1!tblKorisnikaID = Me.Text13.Value
    rst1!DatumPristupa = Date
    rst1!VrijemePristupa = Time()
    rst1!Racunar = ImeKompa()
    rst1.Update
    rst1.Close


Ovo ide bez greske i odradi bas ono sto mi treba. Dakle, upise mi u tabelu ko i kada je usao u program i sa kojeg racunara.

Sljedeci kod koristim prilikom zatvaranja programa

Code:
Private Sub Form_Close()
Dim strSQL As String
Dim db2 As DAO.Database
Dim rst2 As DAO.Recordset
Set db2 = CurrentDb()
strSQL = "SELECT tbllogovanja.ID, tbllogovanja.DatumOdjave, tbllogovanja.VrijemeOdjave FROM tbllogovanja WHERE ((tbllogovanja.ID)=(Select (ID)from tbllogovanja));"
Set rst2 = db2.OpenRecordset(strSQL, dbOpenDynaset)
rst2.Edit
rst2!DatumOdjave = Date
rst2!VrijemeOdjave = Time()
rst2.Update
rst2.Close



Obzirom da baza radi u visekorisnickom okruzenju desava se da istovremeno imam po nekoliko ulogovanih korisnika

Primjer:
Korisnik Datumprijave Vrijeme prijave Datum odjave Vrijeme odjave Racunar
Aco Ackovic, 19.09.2013, 21:38, .................., ................., Acko
Mujo Mujic, 19.09.2013, 21:37, .................., ................., Munja


Problem:

Kada korisnik Mujo izadje iz programa datum i vrijeme odjave upisuje se u Acina polja iako je Aco jos uvijek u programu.
Kada se Aco odjavi, samo se upisu novi podaci ponovo u Acina polja a Mujina polja datum i vrijeme odjave ostaju prazna.

Ovi podaci su mi jako bitni pa ako neko ima rjesenje, zahvaljujem unaprijed.
[ Getsbi @ 16.09.2013. 06:39 ] @
Teško je iz dva parčeta kooda videti šta se dešava.

Pitanje je da li su tabele u delu za logovanje uopšte koncipirane za višekorisnički rad. Najverovatnije da nisu jer u SQL izrazu iza Where stalno dobijaš prvo pronađeno polje tbllogovanja.ID.

Najjednostavniji način praćenja je da i u drugom delu koda, umesto SQL izraza, takođe dozvoliš unos novog zapisa uz obezbeđenje da se ID korisnika (vrednost koju imaš u Text13) nalazi u javnoj varijabli na klijentskom računaru.

Napuštanje programa nemora uvek da bude legalnom odjavom. Nestanak struje i druga nasilna gašenja računara su sastavni deo svakodnevnice.
[ Zidar @ 16.09.2013. 15:27 ] @
[quote]WHERE ((tbllogovanja.ID)=(Select (ID)from tbllogovanja));"[quote] Ovo ce da radi ako i samo ako subquery Select (ID)from tbllogovanja) vraca tacno jedan rekord, a to je moguce samo u nekoj fazi testiranja, kad i nemas vise od jednog rekorda. U normalnom SQL dijalektu, kad subkveri vrati vise od jednog rekorda, onda sve pukne, to je greska koju SQL ne moze da podnese. Ne znam da li se to tacno tako desava i u Accesu, moguce je da JET procita samo prvi rekord i zanemri ostali (sto nije verovatno, jer bi to bi kolosalni bug u JET engine).

Znaci, ako nesto uopste i radi, to je sasvim slucajno.


Mozda bi trebalo da imas ovakvu logiku

Korak 1: Procitaj ime korisnika koj zatvara formu (OS user ID?)
Korak 2: U tabeli tblLogovanja pronadji POSLEDNJI log in rekord za tog korisnika (tacno 1 rekord)
Ocekuje se da polja DatumOdlogovanja i vreme Odlogovanja budu NULL u tom momentu. Ako nisu NULL, onda je negde programmanuo sa upisom logovanja.
Korak 3: Upisi datum i vreme u tabelu tblLogovanja za rekord iz koraka 2

I naravno, lakse bi bilo kad bi imao samo po jedno polje za momenat logovanja i jedno za momenat odlogovanja, gde bi Datum i Vreme bili u jednom, jer to je prirodan nacin rada sa date-time podacima u Accesu.

Sve ovo ej samo naivna teorija. Ozbiljna teorija izgled amlo drugacije i malo se drugacije resava, na komplikovaniji nacin. Razmisli da li ti ovo bas treba, jer zadatak koji resavas nije ni lak ni pocetnicki. Naivno moze da se resi, onako kako sam opisao, ali da se resi na robustan nacin, prakticno je nemoguce, pa ako ne moars, nemoj s ovim da se zamajavas, samo ces izgubiti vreme.


[ Miki2013 @ 17.09.2013. 20:02 ] @
Prije svega hvala na odgovoru.

Vjerovao ili ne ovo radi bez ikakvih problema. Uredno evidentira svaki ulazak i izlazak, samo kada ih je vise istovremeno onda se desava kao sto sam opisao.

Imam jednu ispravku u SQL sintaksi koju sam napisao gore

Code:
strSQL = "SELECT tbllogovanja.ID, tbllogovanja.DatumOdjave, tbllogovanja.VrijemeOdjave FROM tbllogovanja WHERE ((tbllogovanja.ID)=(Select Max (ID)from tbllogovanja));" 


Dakle izostavio sam rijec "Max" iza Select.

Ovo naravno nista ne mijenja ali samo zelim da ispravim kod koji koristim da bude jasniji.

Ovaj kod sam stavio i na dugmicima Log off i Exit kao i na close form i kao sto rekoh nemam ama bas nikakvih "pucanja" niti prijave bilo kakve greske.

U svakom slucaju pokusat cu pronaci neko drugo rjesenje.

Hvala jos jednom!

Pozdrav!
[ Zidar @ 17.09.2013. 21:06 ] @
Naravno da radi.
Code:
Select Max (ID) from tbllogovanja
jeste veoma razlicito od
Code:
Select (ID)from tbllogovanja

Select Max (ID) vrca tacno jedan rekord i to onaj koji je poslednji unesen u tabelu, bez obzira koji je to korisnik. Zato ti 'gresi' kad imas vise korisnika odjednom ulogovanih, uvek vraca onog ko se zadnju ulogovao. Probaj ovo:

Select Max (ID) from tbllogovanja WHERE Korisnik = tekuci korisnik, to bi trebalo d ati vrati poslednji login za samo ovog korisnika na ovoj tekuceoj masini.

:-)
[ Miki2013 @ 18.09.2013. 21:02 ] @
Nazalost, nece ni ovako..
Kao sto rekoh baza je visekorisnicka i svi rade sa FE na lokalnim racunarima sa jednom zajednickom BE i tu se izmedju ostalih nalazi i tabela logovanja.

Hajde da ovo sad za sad ostavimo po strani mozda "nadodje u voznji"

Imas li kakvu ideju kako da sa jednog racunara "ocitam" koji korisnik ili korisnici trenutno koriste bazu?

Recimo, neki query ili bilo sta samo da izvucem taj podatak i naravno kada korisnik napusti program da ga nema vise na "listi"

Pozdrav i hvala na ucescu u temi.
[ nenadmarkoni @ 19.09.2013. 08:19 ] @
Mislim da Vam i za ovo trebaju ispravni podaci u tabeli logovanja, i to sa ispravnom odjavom, da bi procitali one korisnike gdje su polja odjave prazna. A mislim da Vam treba i neki dio programa koji bi provjerio da li se u prethodnom logovanju korisnik pravilno odjavio, i da ne dozvoli novo logovanje dok se ne popune polja odjave za prethodni log.
[ Zoran.Eremija @ 19.09.2013. 08:36 ] @
Citat:
Getsbi: Napuštanje programa nemora uvek da bude legalnom odjavom. Nestanak struje i druga nasilna gašenja računara su sastavni deo svakodnevnice.


Imajuci u vidu opasku koju je kolega @Getsbi izneo, pogledajte primer "Korisnik MDB 20130919.zip", koji mozete preuzeti sa http://zoraneremija.wix.com/eremijacv#!downloads/c1qda. Obuhvata osnovne elemente administracije.

Korisnik: admin
Lozinka: admin
[ Miki2013 @ 20.09.2013. 21:25 ] @
Svidja mi se ovo kako si odradio, svaka cast...

I ranije sam nekada skinuo ovaj tvoj primjer i "pozajmio" rjesenje za promjenu lozinke ali nisam ga nikada stigao analizirati u cjelosti pa mi je i promaklo
ova ideja o logovanim korisnicima.

Pokusat cu da ovaj tvoj nacin implementiram u svoj program ali korak po korak jer zelim da u cjelosti shvatim kako si ovo izveo kako bih ga prilagodio bez da iznova idem sa izradom login forme jer se moja mnogo razlikuje od tvoje u samom kodu.

Ako bas nesto ne shvatim i zapnem, javim se ponovo.

Hvala mnogo majstore!


Uspio sam implementirati ovo tvoje rjesenje u potpunosti i sto je najbitnije shvatio sam kako si ga uradio...

Hvala mnogo prijatelju!

[Ovu poruku je menjao Miki2013 dana 21.09.2013. u 23:06 GMT+1]
[ Zoran.Eremija @ 26.09.2013. 20:34 ] @
Citat:
Miki2013: Uspio sam implementirati ovo tvoje rjesenje u potpunosti i sto je najbitnije shvatio sam kako si ga uradio... :-)


Drago mi je da ste uspeli navedeno, a posebno ako ce Vam koristiti.
[ Miki2013 @ 01.10.2013. 19:44 ] @
Ups!

Rano sam se poceo radovati jer sam to sve testirao na jednom racunaru sa vise korisnika
Medjutim u praksi "na terenu" se desava slicno kao i sa vremenom odjave u ranijem postu.

Prvi koji se odjavi, "odloguje" i sve ostale (mislim na one ikonice) odnosno, svima upise 0 u log status.

[ Zoran.Eremija @ 01.10.2013. 20:23 ] @
Hmmm ako ste bas primenili model koji sam postavio ?!?!?
[ Miki2013 @ 03.10.2013. 21:06 ] @
Ocito sam nesto preskocio jer nam se struktura razlikuje, pokusat cu sada preko vikenda polako sve ispocetka analizirati.
[ Zoran.Eremija @ 03.10.2013. 21:19 ] @
Mojom greskom nisam naveo bitan detalj, a to je:
1. Tabela Licenca se nalazii u FE fajlu.
2. Tabela System mora biti linkovana iz recimo mdb fajla koji se nalazi na lokaciji gde i FE.
3. Ostale tabele se nalaze na BE i linkuju se.

Iako sam ovo opisao prilikom prvog objavljivanja aplikacije Korisnik http://www.elitesecurity.org/t416085-0#2753542
[ Miki2013 @ 05.10.2013. 10:48 ] @
Izgleda da sam dobio ono sto sam zelio.... saznat cu u ponedjeljak kad dodjem na posao.


Prepravio sam tvoj izvorni query "QKorisnikLogOff"
Code:
UPDATE Korisnik SET Korisnik.LogStatusID = 0
WHERE (((Korisnik.KorisnikID)=DLookUp("[ReferentID]","System")));


sa ovim:

Code:
UPDATE tblkorisnika INNER JOIN tbllogovanja ON tblkorisnika.username = tbllogovanja.tblKorisnikaID SET tblkorisnika.LogStatusID = 0
WHERE (((tblkorisnika.username)=[Forms]![frmOsnovna]![KorisnikID]));


Zatim sam rucno u tabeli korisnika na nekoliko mjesta promijenio vrijednost iz 0 u 1 radi testiranja.
i nakon odjave "append-ovao mi je 0 samo onog korisnika koji je bio logovan dok su svi ostali zadrzali status "online" za razliku od ranije kada mi je prvi koji se odjavi,odjavljivao i sve ostale bez obzira sto su i dalje koristili program.

Tvoj "Tracelog" je veoma korisna stvar ali nazalost za mene previse komplikovano pa se ne usudjujem ni upustati u izradu.

Hvala na pomoci!
[ Zoran.Eremija @ 05.10.2013. 11:44 ] @
Da tu je mesto gde ste immali problem ali zbog toga sto Vam nisam na vreme rekao da treba tabela System da se nallazi van Klijenta tj FE i da bude locirana u Access fajlu negde na lokalnom disku i ta tabela se linkuje u FE.
Prilikom logovanja, korisnik koji se logovao azurira System.ReferentID te otuda taj uslov kada se odloguje

WHERE (((Korisnik.KorisnikID)=DLookUp("[ReferentID]","System")));
[ Miki2013 @ 06.10.2013. 10:06 ] @
Da, nazalost ja to nisam odmah primjetio ali najbitnije je da ce ovo bar ja mislim i "na terenu" funkcionisati.

U svakom slucaju hvala Vam mnogo... pozdrav!
[ Miki2013 @ 12.10.2013. 15:14 ] @
Nesto sam danas eksperimentisao sa upisom vremena odjave ali to nemogu probati dok ne dodjem na posao.

Code:
UPDATE tblkorisnika INNER JOIN tbllogovanja ON tblkorisnika.username = tbllogovanja.tblKorisnikaID SET tblkorisnika.LogStatusID = 0, tbllogovanja.DatumOdjave = Date(), tbllogovanja.VrijemeOdjave = Time()
WHERE (((tbllogovanja.DatumOdjave) Is Null) AND ((tbllogovanja.VrijemeOdjave) Is Null) AND ((tblkorisnika.username)=[Forms]![frmOsnovna]![KorisnikID]));


Naravno, podrazumjeva se da bi prvo morao rucno popuniti ona polja koja su do sada ostala prazna.

Rukovodio sam se cistom logikom pa me samo zanima strucno misljenje da li bi ovo moglo "upaliti" u praksi na vise racunara?

odnosno, kako bi glasio SQL izraz u VB.

Trenutno je ovako sto ne radi kako treba:

Dim strSQL As String
Dim db2 As DAO.Database
Dim rst2 As DAO.Recordset
Set db2 = CurrentDb()
strSQL = "SELECT tbllogovanja.ID, tbllogovanja.DatumOdjave, tbllogovanja.VrijemeOdjave FROM tbllogovanja WHERE ((tbllogovanja.ID)=(Select Max(ID)from tbllogovanja));"
Set rst2 = db2.OpenRecordset(strSQL, dbOpenDynaset)
rst2.Edit
rst2!DatumOdjave = Date
rst2!VrijemeOdjave = Time()
rst2.Update
rst2.Close

Hvala!
[ Zoran.Eremija @ 28.10.2013. 18:12 ] @
Nova verzija aplikacije Korisnik, koja radi i na x32 i x64 Access 2003-2013. Fajl "Korisnik x32 x64 20131028.zip", mozete skinuti sa http://zoraneremija.wix.com/eremijacv#!downloads/c1qda.
[ vladpop @ 21.01.2014. 12:13 ] @
Umesto ovoga:
Citat:
Miki2013:

strSQL = "SELECT tbllogovanja.ID, tbllogovanja.DatumOdjave, tbllogovanja.VrijemeOdjave FROM tbllogovanja WHERE ((tbllogovanja.ID)=(Select Max(ID)from tbllogovanja));"


Kod mene je:

Code:
strSQL = "SELECT tblPristupa.IdPristupa, tblPristupa.DatumOdjave, tblPristupa.VremeOdjave FROM tblPristupa WHERE((tblPristupa.IdPristupa)=(Select Max(IdPristupa)from tblPristupa WHERE tblPristupa.KorIme=Korisnik() ));"

I radi bez ikakvih problema u višekorisničkom okruženju.

Inače Korisnik() ti je funkcija koja izgleda ovako:

Public Function Korisnik() As String
Korisnik = Forms!frmLogin!cboUserName.Column(1)
End Function