Centar za edukaciju-BiH



#1 21.05.2013 21:09
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,644


Predmet:Korisnicko ime iz koristan kod
Pitanje od: @Miki2013

IsOpenedExclusive() As Boolean
IsOpenedExclusive = False
Dim rs As ADODB.Recordset
Set rs = con.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")

Dim strUsers As String
Dim intUsers As Integer
Do While Not rs.EOF
strUsers = strUsers & vbCrLf & Left(rs.Fields(1), Len(Trim(rs.Fields(1))) - 1) & "@" & Left(rs.Fields(0), Len(Trim(rs.Fields(0))) - 1)
intUsers = intUsers + 1
rs.MoveNext
Loop
rs.Close
Set rs = Nothing

If intUsers > 1 Then
MsgBox "Korisnici koji trenutno koriste bazu podataka:" & vbCrLf & strUsers, vbInformation
Exit Function
End If
IsOpenedExclusive = True
End Function

Pozdrav!
Može li mi neko pojasniti kako ove podatke o korisnicima koji koriste bazu dobiti na formi?
Hvala unaprijed!
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
Ovaj post je ureden 1 puta. Posljednja izmjena 21.05.2013 21:10 od strane zxz. ↑  ↓

#2 21.05.2013 21:28
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,644


Predmet:Re: Korisnicko ime iz koristan kod
Ovu proceduru stavi u neki modul:

PreuzmiIzvorni kôd (Visual Basic):
  1. Function IsOpenedExclusive() As String
  2.     IsOpenedExclusive = False
  3.     Dim rs As ADODB.Recordset
  4.     Set rs = con.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
  5.    
  6.     Dim strUsers As String
  7.     Dim intUsers As Integer
  8.     Do While Not rs.EOF
  9.         strUsers = strUsers & vbCrLf & Left(rs.Fields(1), Len(Trim(rs.Fields(1))) - 1) & "@" & Left(rs.Fields(0), Len(Trim(rs.Fields(0))) - 1)
  10.         intUsers = intUsers + 1
  11.         rs.MoveNext
  12.     Loop
  13.     rs.Close
  14.     Set rs = Nothing
  15.    
  16.     If intUsers > 1 Then
  17.         IsOpenedExclusive = strUsers
  18.         Exit Function
  19.     End If
  20.     IsOpenedExclusive = True
  21. End Function

Sada napravi neku formu i na formu stavi tekst box kontrolu.
Na control source kontrole upisi:
=IsOpenedExclusive()
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#3 21.05.2013 21:40
Miki2013 Van mreze
Clan
Registrovan od:03.05.2013
Postovi:38


Predmet:Re: Korisnicko ime iz koristan kod
Hvala na brzom odgovoru!

Zapne ovdje
Set rs = con.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
↑  ↓

#4 21.05.2013 22:26
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,644


Predmet:Re: Korisnicko ime iz koristan kod
Pa nema tu konekcije.
Mislio sam da si to vec napravio jer neznam odakle ces pristupati.
Evo ovdje ako je kod na current.
PreuzmiIzvorni kôd (Visual Basic):
  1. Function IsOpenedExclusive() As String
  2.     Dim cnn As New ADODB.Connection
  3.     Dim rs As ADODB.Recordset
  4.    
  5.     'cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
  6.     "Data Source=C:\Program Files\Microsoft " & _
  7.     "Office\Office11\Samples\Northwind.mdb;"
  8.    Set cnn = CurrentProject.Connection
  9.     Set rs = cnn.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
  10.     'Set rs = cnn.OpenSchema(adSchemaProviderSpecific _
  11.     , , JET_SCHEMA_USERROSTER)
  12.    Dim strUsers As String
  13.     Dim intUsers As Integer
  14.     Do While Not rs.EOF
  15.         strUsers = strUsers & vbCrLf & Left(rs.Fields(1), Len(Trim(rs.Fields(1))) - 1) & "@" & Left(rs.Fields(0), Len(Trim(rs.Fields(0))) - 1)
  16.         intUsers = intUsers + 1
  17.         rs.MoveNext
  18.     Loop
  19.     rs.Close
  20.     Set rs = Nothing
  21.     IsOpenedExclusive = strUsers
  22. End Function

Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#5 22.05.2013 19:56
Miki2013 Van mreze
Clan
Registrovan od:03.05.2013
Postovi:38


Predmet:Re: Korisnicko ime iz koristan kod
Nece prijatelju pa nece...

Probao sam danas na poslu preko servera ali sa onom prvom mi u unbound polju pise error a sa drugom na curent ne pokazuje nista pa ni error.

Mada, iskreno current mi i ne treba jer sam to odradio na drugaciji nacin a prvi postupak ko je logovan "kontrolisem" preko query-ja jer se u posebnoj tablici biljezi username, datum i vrijeme prijave kao i odjave.
Ukoliko je vrijeme odjave prazno ja tako znam da je korisnik jos uvijek logovan.

Ali eto volio bih da ako je to moguce i ostali korisnici vide ko je trenutno u bazi u slucaju da imaju record lock da mogu sacekati ili kontaktirati kolegu.

Nego, imam ja jedan mnogo veci problem o kojem sam pisao na http://www.elitesecurity.org/...ugog-mreza ali nazalost izgleda da mi niko nije mogao dati rjesenje.

Ukoliko ti imas kakav prijedlog bio bih veoma zahvalan.
Ovo ovdje mozes lock ili delete.

Hvala!
↑  ↓

#6 22.05.2013 20:49
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,644


Predmet:Re: Korisnicko ime iz koristan kod
Ovo se mora dovesti do kraja samo treba biti strpljiv.
Trebas vidjeti u kojem redu pravi gresku.
Neznam znas li zaustaviti izvrsenje koda pa onda sa F8 korak po korak i citati rezultate.
Imam ja jos par verzija koda ali volio bih da mi kazes u kojem redu koda prijavljuje gresku pa ce biti lakse.

Ima jos nesto.
Kazes da koristis tabelu za logovanje.
Citat:
Mada, iskreno current mi i ne treba jer sam to odradio na drugaciji nacin a prvi postupak ko je logovan "kontrolisem" preko query-ja jer se u posebnoj tablici biljezi username, datum i vrijeme prijave kao i odjave.
Nadam se da u ovu tabelu pored imena korisnika ili id korisnika unosis i ime racunara posto sve mrezno radi.
Ako je to tako onda ti i iz ove tabele mozes naci ko je sve logovan i sa kojeg compa.
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#7 22.05.2013 20:55
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,644


Predmet:Re: Korisnicko ime iz koristan kod
Sto se tice linka es. najbolje je da svoj pšroblem iznese u novoj temi.
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#8 22.05.2013 21:15
Miki2013 Van mreze
Clan
Registrovan od:03.05.2013
Postovi:38


Predmet:Re: Korisnicko ime iz koristan kod
Ponovo hvala na brzom odgovoru.
sto se tice tabele logovanja u njoj imam ID, korisnicko ime, datum prijave, vrijeme prijave, datum odjave i vrijeme odjave. To sam uvezao da mi na "kljucnim" rekordima upise ko je sta unio ili promijenio (mislim konkretno na korisnicko ime) i to funkcionise super. a sto se tice naziva racunara sa kojeg je izvrsen unos ili izmjena za to koristim sljedeci kod u modulu
PreuzmiIzvorni kôd (Text):
  1. Function ImeKompa()
  2. Dim strImeKompjutera As String
  3.  
  4. strImeKompjutera = String(255, Chr(0))
  5. ImeRacunara strImeKompjutera, 255
  6. strImeKompjutera = left(strImeKompjutera, InStr(1, strImeKompjutera, Chr(0)) - 1)
  7. ImeKompa = strImeKompjutera
  8. End Function

a na formi sam napravio unbound polje i u njega unio naziv kolone "Komp" iz tabele "osnovna" gdje se i biljeze ti podaci, takodje uredno.

ali da ne duzim meni bi odgovarala i "jednostavna" kontrola recimo nesto kao broj korisnika koji su trenutno logovani
*********************************************
npr. Trenutno bazu koristi 3 lica
*********************************************
Iskreno, jos uvijek sam pocetnik tako da ne znam bas kako ide to sa pokretanjem koda ali uglavnom nakon svakog koda koji ubacim idem na kompajliranje i ako nesto nije uredu onda mi pogresan kod pozuti i strelicom misa preko tog ocitam vrijednosti

Konkretno u ovom tvom kodu zapne na liniji
Set rs = con.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")

Napominjem da radim u MS Accessu 2003 i da osim prvih 5 default-nih referenci nisam ukljucio ni jednu dodatnu

Pozdrav!
↑  ↓

#9 22.05.2013 21:39
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,644


Predmet:Re: Korisnicko ime iz koristan kod
Probaj sa ovom procedurom, pa cemo onda nesto vise znati o tvojoj situaciji.
Na vrh nekog modula stavi ovo:
PreuzmiIzvorni kôd (Visual Basic):
  1. Option Compare Database
  2. Option Explicit
  3. Global Const JET_SCHEMA_USERROSTER = _
  4.     "{947bb102-5d43-11d1-bdbf-00c04fb92675}"

a evo procedura i mozes je staviti umjesto one gore pa probaj.
PreuzmiIzvorni kôd (Visual Basic):
  1. Function ReturnUserRoster()
  2. Dim cnn As New ADODB.Connection
  3. Dim rs As ADODB.Recordset
  4. Dim Korisnici
  5.  
  6. 'cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
  7.   "Data Source=C:\Program Files\Microsoft " & _
  8.     "Office\Office11\Samples\Northwind.mdb;"
  9. Set cnn = CurrentProject.Connection
  10. Set rs = cnn.OpenSchema(adSchemaProviderSpecific _
  11.     , , JET_SCHEMA_USERROSTER)
  12. Do While Not rs.EOF
  13. Korisnici = Korisnici & rs.GetString & vbCr
  14. Loop
  15.  
  16. Set rs = Nothing
  17. Set cnn = Nothing
  18. End Function

Javi sta se desava.
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

Stranice (1):1


Sva vremena su GMT +01:00. Trenutno vrijeme: 1: 12 pm.