Rocky Smolin at Beach Access Software
rockysmolin at bchacc.com
Sun Jan 6 13:17:52 CST 2008
Dan:
Just drop it in and it works? I try to avoid code when I don't understand
everything it's doing. Can't maintain it. Pretty much set a reference to
ADO and then plug and play?
Rocky
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Dan Waters
Sent: Sunday, January 06, 2008 10:45 AM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Number of Users
Hi Rocky,
This came from MS KB198755, and I've used it for a few years now with no
problems. This will also tell the person being kicked off who else is
logged in so they know who to ask to log off.
-------------------------------------------------------------------
Public Sub UserLimit()
Dim con As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim stgData As String
Dim stg As String
Dim stgFullName As String
Dim rstFullname As DAO.Recordset
Dim stgUserName As String
Dim stgNameList As String
Dim intUsers As Integer
Dim stgUsers As String
Dim rstUsers As DAO.Recordset
Dim stgLockout As String
Dim rstLockout As DAO.Recordset
'-- The user roster is exposed as a provider-specific schema rowset _
in the Jet 4.0 OLE DB provider. You have to use a GUID to _
reference the schema, as provider-specific schemas are not _
listed in ADO's type library for schema rowsets
'-- This is from MSKB 198755 and is specific to Access 2000 & up
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
DBEngine.SystemDB
Set rst = con.OpenSchema(adSchemaProviderSpecific, ,
"{947bb102-5d43-11d1-bdbf-00c04fb92675}")
Do While rst.EOF = False
stgUserName = Left$(rst(1), InStr(1, rst(1), Chr(0)) - 1)
Set rstFullname = DBEngine(0)(0).OpenRecordset("SELECT Person FROM
tblPeopleMain" _
& " WHERE UserName = '" & stgUserName & "'", dbOpenSnapshot)
If stgUserName <> "Admin" Then
If stgNameList = "" Then
stgNameList = rstFullname("Person")
Else
stgNameList = rstFullname("Person") & ", " & vbNewLine &
stgNameList
End If
intUsers = intUsers + 1
End If
rst.MoveNext
rstFullname.Close
Set rstFullname = Nothing
Loop
rst.Close
Set rst = Nothing
'-- Look for too many users logging in
stgUsers = "SELECT ThisMonthUsers FROM tblUserLicenseInformation"
Set rstUsers = DBEngine(0)(0).OpenRecordset(stgUsers, dbOpenSnapshot)
If intUsers > rstUsers("ThisMonthUsers") Then
stgLockout = "SELECT * FROM tblUserLicenseLockouts"
Set rstLockout = DBEngine(0)(0).OpenRecordset(stgLockout,
dbOpenDynaset)
rstLockout.AddNew
rstLockout("Name") = CurrentPerson
rstLockout("LockoutDate") = CurrentDate
rstLockout("LockoutTime") = Format(Now(), "Medium Time")
rstLockout("AllowedUsers") = rstUsers("ThisMonthUsers")
rstLockout.Update
rstLockout.Close
Set rstLockout = Nothing
FormattedMsgBox GstgNotReady, "There are insufficient User Licenses
for you to log on." _
& " The following people are now logged on to " & SystemTitle &
":" _
& vbNewLine & vbNewLine _
& stgNameList & "@ @", vbExclamation + vbOKOnly, "Insufficient
User Licenses"
rstUsers.Close
Set rstUsers = Nothing
DoEvents
DoCmd.Quit
Exit Sub
End If
rstUsers.Close
Set rstUsers = Nothing
End Sub
---------------------------------------------------------------------------
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin at
Beach Access Software
Sent: Sunday, January 06, 2008 10:19 AM
To: 'Access Developers discussion and problem solving'
Subject: [AccessD] Number of Users
Dear List:
What is the easiest way to restrict the number of users in a FE/BE
application?
MTIA
Rocky
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.516 / Virus Database: 269.17.13/1210 - Release Date: 1/5/2008
11:46 AM