Newsgroup: it.comp.appl.access
Titolo: INTERAGIRE COL FILE *.MDW

Vorrei implementare una login form che accetti come input lo Username e la
Password, in modo poi da verificarli, unitamente ai privilegi previsti per
diversi gruppi di lavoro, con quanto contenuto nel file *.MDW usato per lo
specifico database.
Qualcuno può indicarmi codice VBA per accedere a queste informazioni,
controllarle, ecc.
Ciao, Dani

 wrote in message
news:4311c8fc$0$8484$
5fc...@news.tiscali.it

Quanto chiedi è un pò insolito, poichè se ben strutturata
la gestione utenti non dovrebbe servire.
In ogni caso per accedere ai dati della protezione utente
devi crearti un Workspace basato sul file MDW in uso, quindi
puoi accedere ai metodi relativi:
CreateUser
User.Append ....
User.Delete ....
CreateGroup
Groups.Append ....
Groups.Delete ....
ecc...!
Per verificare invece se l'attuale Utente ha i necessari
permissivi su un Oggetto la cosa cambia:
Ti passo una Funzione che consente di effettuare il Check.
La devi chiamare così:
Call
CheckPermissions(strUserName,strObjectName,strObjectType,flgPermission)
Dove:
strUserName=CurrentUser
strObjectName= Nome della Tabella, o Query o Maschera o altro oggetto
strObjectType= Tipologia dell'oggetto Tables, Queries, Forms, Reports...
flgPermission=Vedi le costanti di sicurezza della proprietà
              Permission--->dbSecFullAccess
Function CheckPermissions(strUserName, strObjectName, strObjectType,
flgPermission)
'Valid object types include: Tables, Queries, Forms, Reports,
'Scripts, and Modules.
'flgPermission is any legal security permission constants.
'These constants will vary depending on the object type.
    On Error GoTo errCheckPermissions
    Dim db As DATABASE
    Dim con As Container
    Dim doc As Document
    'The next three lines of code takes the object type and
    'object name parameters to find the object.
    Set db = CurrentDb
    Set con = db.Containers(strObjectType)
    Set doc = con.Documents(strObjectName)
 
    'The next line of code sets the user
    doc.UserName = strUserName
 
    ' Check if flag against the AllPermissions property.
    If (doc.AllPermissions = flgPermission) Then
        CheckPermissions = True
    Else
        CheckPermissions = False
    End If
 
    'Fuction successful
    Exit Function
 
errCheckPermissions:
    MsgBox "Function 'ap_CheckPermissions' did not complete
successfully."
    Exit Function
End Function
Questo argomento è un pò ostico in quanto pochi lo usano in modo
approfondito(io per primo lo evito).
Ciao
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Grazie per la routine. La sperimenterò.
In alternativa, con access 2003, cosa suggerisci per controllare gli accessi
al database e l'utilizzo differenziato delle maschere/reports e/o dei
controlli all'interno delle stesse?
Mi piacerebbe una Splash form (titolo, copiright, ecc.) con la finestra di
access nascosta; alla chiusura della splash, appare la login form: a secondo
dell'input, farei partire un secondo mdb controllato dal file mdw.
Ciao, Daniele

 wrote in message
news:43133d5c$0$8493$
5fc...@news.tiscali.it

Io non uso la sicurezza di access per la gestione utenti ed i motivi
sono ormai pubblici.
Uso però la struttura MDW per disabilitare l'ADMIN come Administrator
del Database e degli oggetti in genere.
Quindi mi sono creato una gestione utenti interna che fà tutto.
Sembrerebbe complicato, ma se ben impostata è decisamente flessibile.
Vantaggio:
Non distribuisco MDW, ma lascio il System.
Per la questione SPLASH, io ti sconsiglio di nascondere
la form MDI di Access, saresti costretto a lavorare con Form_Popup.
Il bello di sviluppare con Access non è nascondere il prodotto
di sviluppo, ma di fare un ottimo applicativo tale per cui
anche chi sviluppa in altri linguaggi apprezzi la funzionalità.
Saluti.
