[ AnoninO @ 05.11.2008. 17:45 ] @
Naime, problem je sledeci nasao sam na internetu Login formu radjenu u Accessu, sada me interesuje prilikom provjere Username-a, kako da se za svakog usera otvara druga forma primjer za Demo Usera otvori se frmDemo, a za Admina pr. frmAdmin, u prilogu vam dostavljam login formu.
Nisam dobar toliko sa programiranjem pa ako mozete da mi pomognete.
Hvala unaprijed!
Code:
http://www.anonino.com/login.mdb
[ domaci_a_nas @ 06.11.2008. 07:06 ] @
Code:
Docmd.OpenForm "frm" & UserName
[ atom @ 06.11.2008. 11:02 ] @
Private Sub cmdOK_Click()

If IsNull(Me.Korisnik) Or Me.Korisnik = "" Then
MsgBox "Morate uneti korisnicko ime.", vbOKOnly, "Potrebni podaci"
Me.Korisnik.SetFocus
Exit Sub
End If

If IsNull(Me.Lozinka) Or Me.Lozinka = "" Then
MsgBox "Morate uneti lozinku.", vbOKOnly, "Paznja"
Me.Lozinka.SetFocus
Exit Sub
End If

If Grupa = "Admin" Then 'Proverava ko je pristupio
DoCmd.OpenForm "frmAdmin" 'Otvara Admin formu
Else
If Grupa = "korisnik" Then
DoCmd.OpenForm "frmkorisnik"
End If
End If

Else

MsgBox "Uneli ste pogresnu lozinku. Molim pokusajte ponovo.", vbCritical, "Netacan unos!"
Me.Lozinka.SetFocus

End If
End Sub
[ AnoninO @ 06.11.2008. 16:06 ] @
Citat:
atom: Private Sub cmdOK_Click()

If IsNull(Me.Korisnik) Or Me.Korisnik = "" Then
MsgBox "Morate uneti korisnicko ime.", vbOKOnly, "Potrebni podaci"
Me.Korisnik.SetFocus
Exit Sub
End If

If IsNull(Me.Lozinka) Or Me.Lozinka = "" Then
MsgBox "Morate uneti lozinku.", vbOKOnly, "Paznja"
Me.Lozinka.SetFocus
Exit Sub
End If

If Grupa = "Admin" Then 'Proverava ko je pristupio
DoCmd.OpenForm "frmAdmin" 'Otvara Admin formu
Else
If Grupa = "korisnik" Then
DoCmd.OpenForm "frmkorisnik"
End If
End If

Else

MsgBox "Uneli ste pogresnu lozinku. Molim pokusajte ponovo.", vbCritical, "Netacan unos!"
Me.Lozinka.SetFocus

End If
End Sub


nije mi jasno ovo, kako definisati, nisam neki programer! ako moze objasnjenje ili da ubacis u kod vec postavljene baze, unaprijed hvala!
[ atom @ 07.11.2008. 07:56 ] @
Mislim da ce ti ovo pomoci.
[ AnoninO @ 07.11.2008. 09:25 ] @
hvala atom, to je to sto sam trazio, jos jednom hvala Puno!
[ Okram_marko @ 02.01.2009. 00:48 ] @
Pozdravljam,

Citat:
atom: Mislim da ce ti ovo pomoci.


Evo ja sam otvorio ovo sa 2007 i ne radi. Da li je kompatibilno sa 2007-icom ili kod mene nesto nije ok?

I meni treba upravo ovo sto si postavio. Svaka cast!


[ AnoninO @ 08.01.2009. 00:41 ] @
dosta stvari na 2007-ici ne radi... ja se vratio na staro... bas zbog toga!
[ Miki2013 @ 21.04.2013. 21:24 ] @
Citat:
atom:
Mislim da ce ti ovo pomoci.


Hvala, i meni je mnogo pomogao ovaj tvoj primjer
[ Miki2013 @ 24.04.2013. 19:29 ] @
Pozdrav!

Zanima me kako na odredjeno mjesto u report automatski upisati trenutno logovanog korisnika u bazu.

Dakle, konkretno potrebno mi je da se prilikom stampanja izvjestaja automatski popuni polje korisnika koji je stampao taj izvjestaj.


Login dugme na akciju click ima sljedeći sadrzaj:

Private Sub Command6_Click()

Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim strSQL As String
Dim UserID As String
Dim Password As String

If IsNull(Text13) Or Text13 = "" Then
MsgBox "Morate odabrati korisnika.", vbOKOnly, "OBAVJEŠTENJE"
Me.Text13.SetFocus
Exit Sub
End If

If IsNull(Text15) Or Text15 = "" Then
MsgBox "Morate unijeti šifru.", vbOKOnly, "OBAVJEŠTENJE"
Me.Text15.SetFocus
Exit Sub
End If

If iBrojiPokusaje > 3 Then
MsgBox "Unijeli ste pogrešnu šifru 4 puta. Program se zatvara!", vbExclamation, "Netacan unos 3 puta"
DoCmd.Quit
End If

UserID = Me.Text13.Value 'vrijednost koju unosi korisnik
Password = Me.Text15.Value 'vrijednost koju unosi korisnik
strUser = UserID
strSQL = " SELECT * FROM tblKorisnika " & _
" WHERE tblKorisnika.Username = '" & UserID & "'" & _
" AND tblKorisnika.Password = '" & Password & "'"

Set db = CurrentDb()
'Set rst = db.OpenRecordset(strSQL)

'If rst.RecordCount = 1 Then 'znaci ako postoji trazeni korisnik

If Me.Text15.Value = DLookup("Password", "tblKorisnika", "[username]='" & Me.Text13.Value & "'") Then
Me.Visible = False 'Sakriva formu frmLogin, NE ZATVARA JE!

If Grupa = "Administrator" Then 'Proverava da li je pristupio Admin
DoCmd.OpenForm "frmOsnovnaAdmin" 'Ako jeste otvara Admin formu
Else
If Grupa = "Operater" Then
DoCmd.OpenForm "frmOsnovna"
End If

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.Update
rst1.Close
Me.Text15 = cls
End If
Else
iBrojiPokusaje = iBrojiPokusaje + 1 'dodaj vrijednost 1 za svaki pogresan pokusaj
MsgBox "Šifra je netacno unešena!", vbCritical, "Pogrešan unos"
Me.Visible = True
Me.Text15.SetFocus
Exit Sub
End If

End Sub

********

Nekad mi uspije dati ono sto zelim (uz uslov da je korisnik mijenjao neki rekord) a nekada ne.

Kreirao sam unbound polje i pokusao koristiti:

=[Korisnik] - ovo mi nekada uspije dati ono sto zelim

=CurrentUser() - ovo mi daje logovanog korisnika u Windows a to mi ne treba

= Environ("username") - ovo mi daje svaki put rezultat kao Admin


Zapetljao sam se potpuno i vise ne mogu da se snadjem (najvise zbog toga sto mi ponekad uradi bas ono sto mi treba). Ako iko moze analizirati ovaj kod i reci mi gdje grijesim bio bih veoma zahvalan.

Hvala unaprijed!
[ SLOJ.1973 @ 24.04.2013. 20:38 ] @
Pišem iz glave,pa ako pogrešim u sintaksi,ne zameri. Prvo napraviš novi modul i nazoveš ga recimo ModPromenljive. U njemu ukucaš
Code:
public ulogovani as string
. U tvom delu koda
Code:
If Me.Text15.Value = DLookup("Password", "tblKorisnika", "[username]='" & Me.Text13.Value & "'") Then
Me.Visible = False  
dodaš
Code:
 ulogovani = DLookup("Id_korisnika", "tblKorisnika", "[Password]='" & Me.Text15.Value & "'")
,gde ti je Id_korisnika u stvari id u tabeli tblKorisnici (recimo redni broj korisnika).
Javna promenljiva Ulogovani će imati vrednost dokle god ne zatvoriš bazu i ne uloguješ se sa novim passwordom. Znači uvek je prisutna.
Na izveštaju samo staviš da to neko polje ima vrednost :
Code:
dlookup("Ime","tblKorisnika","Id_korisnika='" & ulogovani & "'") & " " & dlookup("Prezime","tblKorisnika","Id_korisnika='" & ulogovani & "'")


[Ovu poruku je menjao SLOJ.1973 dana 24.04.2013. u 22:28 GMT+1.Dodate zagrade]

[Ovu poruku je menjao SLOJ.1973 dana 24.04.2013. u 22:28 GMT+1]
[ Miki2013 @ 24.04.2013. 21:12 ] @
Prije svega hvala na brzom odgovoru.... Odradio sam sve kako si napisao s tim da mi je jos ostalo nerijeseno

dlookup("Ime","tblKorisnika","Id_korisnika='" & ulogovani & "'" & " " & dlookup("Prezime","tblKorisnika","Id_korisnika='" & ulogovani & "'"

pokusavao sam zamijeniti ime sa username i obrisati "visak" coda & " " & dlookup("Prezime","tblKorisnika","Id_korisnika='" & ulogovani & "'" i zatvoriti zagradu ali ne ide i dalje....

struktura tabele korisnika sadrzi ove elemente

ID
username
password
Grupa

[ Zoran.Eremija @ 24.04.2013. 21:22 ] @
Svojevremeno sam postavio u ovoj temi primer http://www.elitesecurity.org/t416085-0#2753542
[ SLOJ.1973 @ 24.04.2013. 21:22 ] @
Mislio sam da imaš i polja tipa Ime ,odnosno Prezime korisnika,što je po meni logično,jer ovako otkud znaš ko je ko po passwordu i username. Dobro,znači želiš da ti se prikaže samo username na izveštaju.Onda ovako:
Code:
dlookup("username","tblKorisnika","ID='" & ulogovani & "'")
,a ako ti je polje ID tipa integer odnosno broj,onda stavi sledeće:
Code:
dlookup("username","tblKorisnika","ID=" & ulogovani )
i umesto public ulogovani as string stavi public ulogovani as integer ili as long.
[ Miki2013 @ 24.04.2013. 21:51 ] @
Zorane, iskreno ovaj tvoj primjer sam skinuo i pogledao i ranije ali je za mene previse komplikovano jer ipak sam ja jos uvijek u neku ruku pocetnik

Sloj, jos uvijek ne ide ID je bio kao Autonumber, promijenio sam ga u number (integer) ali mi i dalje prijavljuje gresku u sintaxi....

imao sam naporan dan na poslu pa mi ni mozak ne funkcionise bas najbistrije ali ne mogu da dokucim u cemu je "kvaka"

inace, u pitanju je MS Access 2003
[ SLOJ.1973 @ 25.04.2013. 07:00 ] @
Okaci primer.
[ Miki2013 @ 25.04.2013. 12:59 ] @
Nisam ranije postavljao primjere ovdje pa se i ne snalazim ali evo jedan externi link

hvala na uputama... evo ga sad okacen

[Ovu poruku je menjao Miki2013 dana 25.04.2013. u 15:03 GMT+1]
[ SLOJ.1973 @ 25.04.2013. 13:26 ] @
Ne moze da se skine.Potrebno je da se registrujemo. Postupak postavljanja primera na elitu> Napises poruku,posaljes,u donjem desnom uglu imas dugme Upload uz poruku-kliknes pa na browse,nadjes svoj primer i posaljes.To je to.
[ blingaro @ 25.04.2013. 16:03 ] @
Ja bih da pomognem sa mojim veoma skromnim znanjem. Meni je davno trebalo nešto vrlo slično, pa mi je kolega SLOJ pomogao. Evo je baza u prilogu, pa vidi da li ti odgovara.
[ Miki2013 @ 25.04.2013. 17:59 ] @
Covjece, ne mogu da vjerujem da sam sve probao osim ovoga

Citat:
=Forms!LoginForma!text13


Hvala ti sto si mi pomogao da "progledam"

Sada kada i sam analiziram kod, vidim da je ovo vise nego logicno rjesenje.

Hvala mnogo svima na pomoci.... Lijep pozdrav!

[ Miki2013 @ 18.05.2013. 21:53 ] @
Pozdrav!

Pisem ovdje jer sam svojevremeno ovdje okacio primjer pa da ga ne kacim ponovo.

Imam sljedeci problem:

Napravio sam 3 forme

frmOsnovna
frmOsnovnaArhivar
frmOsnovnaAdministrator

Prilikom Unosa novog korisnika dodjelim mu "prava pristupa", odnosno grupi kojoj pripada i koju formu moze otvoriti.

E sad, sve sam to nabacio na server, dodijelio full prava na folder i fajl "baza_be.mdb" svim operaterima koji otvaraju frmOsnovna

Problem mi se javlja kada se loguje korisnik sa pravom pristupa "Arhivar", blokira pristup svim ostalim operaterima i obratno.
Znaci kada Arhivar otvori frmOsnovnaArhivar i sa nje ode na drugu formu sbfrmIzdato u kojoj unosi neke druge stvari, frmOsnovnaArhivar se minimizuje,
sto znaci da uopste ne koristi tabelu Osnovna koju trebaju koristiti i operateri.

Uglavnom ne dozvoljava osvjezenje tabela sa back endom, onom sljedecem koji se pokusa logovati

U opcijama sam decekirao record lock po primjeru koji sam vidio ovdje na forumu ali nista se ne mijenja i dalje je isto.

Molim za bilo kakvo rjesenje.

Moderator moze premjestiti ovaj post ili ga izbrisati posto znam da nema veze sa naslovom teme ali sam na pocetku objasnio zasto bas ovdje pisem.