Arthur Fuller
fuller.artful at gmail.com
Sun Jan 6 14:17:27 CST 2008
I've never done this before, but can't you interrogate the LDB file to find
out how many users are on at once?
Arthur
On 1/6/08, Rocky Smolin at Beach Access Software <rockysmolin at bchacc.com>
wrote:
>
> Dan:
>
> I always declare dao variables explicitly. But it looks like, as you say,
> a
> good template.
>
> Thanks
>
> 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 11:40 AM
> To: 'Access Developers discussion and problem solving'
> Subject: Re: [AccessD] Number of Users
>
> No - you'll need to work on it.
>
> You'll need to use your own tables of course. You'll also need to deal
> with
> a couple of custom Functions (like 'SystemTitle'), which you'll need to
> either change or remove.
>
> I forgot about this but I believe that you'll need to qualify all your
> other
> recordset variables with your database as DAO.Recordset or ADODB.Recordset
> .
> If you also set a reference to ADO, then your recordsets will need to know
> which type to become.
>
> This is intended as a template to start with. I hope it does help!
> Dan
>
> -----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 1:18 PM
> To: 'Access Developers discussion and problem solving'
> Subject: Re: [AccessD] Number of Users
>
> 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
>
>
> --
> 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
>
>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>