Bosna i Hercegovina



#1 22.05.2013-21:36
Miki2013 Offline
Clan
Registrovan/a od: 03.05.2013-17:02
Komentari: 38


Subject: Korisnik blokira drugog na mrezi
Pozdrav!

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 prilozenom primjeru je nepodijeljena baza na FE i BE cisto da se ima predstava o strukturi
a aplikacija je potpuno redizajnirana i porasla je na preko 7 MB do sada (bez podataka).

Ima li iko kakvu ideju kako se rijesiti ovog medjusobnog blokiranja?

Ikona prilozene slike:
Advanced.jpg
Tip fajla: Informacije o fajlu: jpg jpg
Preuzimanja: 35
Veličina: 111.42 KB
Veličina slike: 477 x 410 Pixels



Prilozi:
Informacije o fajlu: rar  Primjer.rar
Preuzimanja: 29
Veličina: 203.25 KB

↑  ↓

#2 23.05.2013-09:15
zxz Online
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,451


Subject: Re: Korisnik blokira drugog na mrezi
Ima ovdje mnogo stvari zbog kojih bi se moglo to desavati.
Citat:
Znaci kada Arhivar otvori frmOsnovnaArhivar i sa nje ode na drugu formu sbfrmIzdato u kojoj unosi neke druge stvari, frmOsnovnaArhivar se minimizuje,
Prvo i osnovno pitanje je zasto se ova forma minimizira a ne zatvara.
Nije to dobro ukoliko forma nije data entry=trye
Idemo prvo da malo ovo uvedemo u red.
Procedura koja se nalazi na loginformi na command6 odnosno na Ulaz, prepravi ovaj dio:

If Me.Text15.Value = DLookup("Password", "tblKorisnika", "[username]='" & Me.Text13.Value & "'") Then
Me.Visible = False 'Sakriva formu frmLogin, NE ZATVARA JE!
Dim Frm As Form
DoCmd.OpenForm "frmOsnovna" '
Set Frm = Forms!frmOsnovna
If Grupa = "Operater" Then
Frm.InsideWidth = 11895
Else
Frm.InsideWidth = 15450
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

'DoCmd.Minimize 'minimizuj ovu formu
'Me.Visible = False
'DoCmd.OpenForm "frmOsnovna", acNormal
Me.Text15 = cls

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

Na ovom command tasteru opciju default stavi na yes.
Na frmOsnovna stavi Ovaj kod:
Private Sub Form_GotFocus()
Me.RecordSource = "tblOsnovna"
End Sub
Private Sub Form_LostFocus()
Me.RecordSource = ""
End Sub

Probaj samo ovako pa vidi dali ce kociti pa javi.
Pozdrav
↑  ↓

#3 23.05.2013-10:18
zxz Online
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,451


Subject: Re: Korisnik blokira drugog na mrezi
Procitaj i ovo pa podesi ako vec nisi:
http://www.icentar.ba/...ge=1#p3252
Pozdrav
↑  ↓

#4 24.05.2013-13:08
Miki2013 Offline
Clan
Registrovan/a od: 03.05.2013-17:02
Komentari: 38


Subject: Re: Korisnik blokira drugog na mrezi
Hvala mnogo!

Citat:
Procitaj i ovo pa podesi ako vec nisi:
http://www.icentar.ba/...ge=1#p3252


Ovo nisam prije radio ali odoh sad da to procitam i pokusam primjeniti.
↑  ↓

#5 26.05.2013-11:09
Miki2013 Offline
Clan
Registrovan/a od: 03.05.2013-17:02
Komentari: 38


Subject: Re: Korisnik blokira drugog na mrezi
Ako moze mala pomoc u ovom dijelu koda
DownloadIzvorni kod (Text):
  1. Private Sub Command6_Click()
  2.  
  3. Dim Db As DAO.Database
  4. Dim rst As DAO.Recordset
  5. Dim strSQL As String
  6. Dim UserID As String
  7. Dim Password As String
  8.  
  9. If IsNull(Text13) Or Text13 = "" Then
  10.     MsgBox "Samo korisnici sa liste imaju ovlaštenje za ulazak.", vbOKOnly, "OBAVJEŠTENJE"
  11.     Me.Text13.SetFocus
  12.     Exit Sub
  13. End If
  14.    
  15. If IsNull(Text15) Or Text15 = "" Then
  16.     MsgBox "Morate unijeti šifru.", vbOKOnly, "OBAVJEŠTENJE"
  17.     Me.Text15.SetFocus
  18.     Exit Sub
  19. End If
  20.  
  21. If iBrojiPokusaje > 1 Then
  22.     MsgBox "Unijeli ste pogrešnu šifru nekoliko puta. Program se sada zatvara jer vi niste ovlašteni za pristup!", vbCritical, "Neta
  23. an unos više puta"
  24.     DoCmd.Quit
  25. End If
  26.  
  27. UserID = Me.Text13.Value 'vrijednost koju unosi korisnik
  28. Password = Me.Text15.Value 'vrijednost koju unosi korisnik
  29. strUser = UserID
  30. strSQL = " SELECT * FROM tblKorisnika " & _
  31.         " WHERE tblKorisnika.Username = '" & UserID & "'" & _
  32.         " AND tblKorisnika.Password = '" & Password & "'"
  33.  
  34. Set Db = CurrentDb()
  35. 'Set rst = db.OpenRecordset(strSQL)
  36.  
  37. 'If rst.RecordCount = 1 Then 'znaci ako postoji trazeni korisnik
  38.  
  39. If Me.Text15.Value = DLookup("Password", "tblKorisnika", "[username]='" & Me.Text13.Value & "'") Then
  40.     Me.Visible = True 'False  'Sakriva formu frmLogin, NE ZATVARA JE!
  41.    
  42.     If Grupa = "Administrator" Then 'Proverava da li je pristupio Admin
  43.         DoCmd.OpenForm "frmOsnovnaAdmin" 'Ako jeste otvara Admin formu
  44.     End If
  45.  
  46.     If Grupa = "Arhivar" Then
  47.        DoCmd.OpenForm "frmOsnovnaArhivar"
  48.     Else
  49.        
  50.     If Grupa = "Operater" Then
  51.        DoCmd.OpenForm "frmOsnovna"
  52.     End If
  53.     'DoCmd.OpenForm "frmOsnovna" 'Otvara formu frmOsnovna.
  54.     End If
  55.      
  56.     Dim db1 As DAO.Database
  57.     Dim rst1 As DAO.Recordset
  58.     Set db1 = CurrentDb()
  59.     Set rst1 = db1.OpenRecordset("tbllogovanja", dbOpenDynaset)
  60.     rst1.AddNew
  61.     rst1!tblKorisnikaID = Me.Text13.Value
  62.     rst1!DatumPristupa = Date
  63.     rst1!VrijemePristupa = Time()
  64.     rst1.Update
  65.     rst1.Close
  66. Me.Text15 = cls
  67.  
  68. Else
  69.     iBrojiPokusaje = iBrojiPokusaje + 1 'dodaj vrijednost 1 za svaki pogresan pokusaj
  70.     MsgBox "Šifra je netacno unešena!", vbCritical, "Pogrešan unos"
  71.     Me.Visible = True
  72.     Me.Text15.SetFocus
  73.     Exit Sub
  74. End If
  75.     DoCmd.Close "LoginForma"
  76. End Sub

Stavio sam namjerno formu visible na True da vidim hoce li se zatvoriti ali ne zatvara se.
Obrati paznju na liniju koda 75, valjda bi ovo nakon provjere trebalo da zatvori LoginFormu
↑  ↓

#6 23.06.2013-08:11
Miki2013 Offline
Clan
Registrovan/a od: 03.05.2013-17:02
Komentari: 38


Subject: Re: Korisnik blokira drugog na mrezi
Ipak je bio problem u pravima na serveru... nije do programa... radi odlicno... Hvala na pomoci
↑  ↓

#7 23.06.2013-09:57
zxz Online
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,451


Subject: Re: Korisnik blokira drugog na mrezi
Kao sto sam ti odgovorio na pp.
Kod mene je to sve radilo na 3 masine bez ikakvih problema sto je ukazivalo na podesenja servera.
Pozdrav
↑  ↓

#8 23.06.2013-10:03
Miki2013 Offline
Clan
Registrovan/a od: 03.05.2013-17:02
Komentari: 38


Subject: Re: Korisnik blokira drugog na mrezi
Hvala jos jednom u svakom slucaju...!

Od mog zadnjeg posta sam jos mnogo toga izmjenjao i prilagodio potrebama "na terenu".

Sada kada citam ovaj tvoj dio koda
DownloadIzvorni kod (Text):
  1. If Grupa = "Operater" Then
  2. Frm.InsideWidth = 11895
  3. Else
  4. Frm.InsideWidth = 15450
  5. End If
javljaju mi se i nove ideje pa me zanima kako si odredio sirinu i visinu... "od oka" ili si je necim procitao?
↑  ↓

#9 23.06.2013-17:23
Miki2013 Offline
Clan
Registrovan/a od: 03.05.2013-17:02
Komentari: 38


Subject: Re: Korisnik blokira drugog na mrezi
Odradjen i ovaj dio... "od oka"... izvini nisam imao strpljenja da cekam odgovor.

Dobio sam jednu formu manje (formu administrator) i "olaksao" program za skoro 1 MB.

Poigrao sam se malo sa sirinom i visinom forme, taman koliko mi je bilo dovoljno da smjestim sve one kontrole koje je imao admin, zatim sam na osnovnu formu dodao jedan check box i na njega stavio sljedeci kod
DownloadIzvorni kod (Text):
  1. Private Sub Check209_Click()
  2. If Check209 = True Then
  3.     Forms!frmOsnovna.InsideWidth = 15450
  4.     Forms!frmOsnovna.InsideHeight = 10800
  5.    
  6.     Else
  7.    
  8.     Forms!frmOsnovna.InsideWidth = 15450
  9.     Forms!frmOsnovna.InsideHeight = 9300
  10.     End If
  11. End Sub

Sve sam to "zacinio" sljedecim kodom
DownloadIzvorni kod (Text):
  1.   If strUser = "Administrator ili bilo ko drugi" Then
  2.      [Check209].Enabled = True
  3.      Else
  4.      [Check209].Enabled = False
  5.      End If

Sada kad se logujem kao onaj kome je ovaj check box ukljucen klikom na njega "pojavljuje" se i "nestaje" onaj dio koji sam prosirio... u mom slucaju je bilo samo po visini... pa se sad igram s tim "control panelom" jer izgleda kao zmigavac... sad ga vidis sad ga nevidis Grinning

Opisao sam malo postupak s namjerom da jos neki pocetnik kao sto sam i ja moze eksperimentisati i eventualno prilagoditi svojim potrebama.

Pozdrav!
↑  ↓

Stranice (1): 1


All times are GMT +01:00. Current time: 22.10.2017-11:06.