Newsgroup: it.comp.appl.access
Titolo: Per Luciani

Caro Luciani,
la funzione di cui sotto disabilita il tasto Shift all'avvio,inoltre
solamente l'amministratore del database puo' attivare o disattivare codesto
tasto,a differenza della funzione posta sul sito comune,con la quale si' un
utente esterno non puo' vedere query e tabelle,ma un utente interno,cioe'
che ha anche la sola autorizzazione ad aprire il database puo' comunque
vedere query e tabelle.
Ripeto,codesta funzione limita la sola autorizzazione all'utente
amministratore.
Purtroppo non mastico molto di codice,fatto sta che a me non mi funziona,vi
sono tre argomenti da scrivere,il primo lo so ed e' "AllowByPassKey",negli
altri due (PropType As DAO.DataTypeEnum e vPropVal As Variant)non so proprio
cosa scrivere,mi puoi aiutare?
Indipendentemente comunque dagli argomenti,quando compilo la funzione mi
viene un messaggio di errore sul secondo argomento e che cioe' il PropType
As DAO.DataTypeEnum non e' supportato in Visual Basic,se invece dichiaro
PropType As Variant va bene,ma non so se la funzione andra' bene,anche
perche' ti ripeto nel secondo e terzo argomento non so cosa inserire,ho
fatto innumerevoli prove e la migliore e' stata un messaggio "Tipo non
corrispondente".
Ti ringrazio tanto se puoi aiutarmi,qui sotto c'e' il tutto.
Voltolini
The CreateProperty method is used to create or set the AllowBypassKey
property to true, which prevents a user from bypassing the startup
properties and the AutoExec macro.  However, the sample code provided in the
help files does not use the fourth DDL argument when making a call to
CreateProperty. This means that anyone who can open the database can
programmatically reset the AllowBypassKey value.
Therefore, in order to restrict the change capabilities to only the Admins,
set the fourth argument to True when calling CreateProperty. And don't lock
yourself out!
As a sample, here's how the CreateProperty method should be called in order
to properly utilize the DDL argument. The current sample in Access Help
Files is also listed below to help illustrate the differences.
' *********** Code Start ***********
Function ChangePropertyDdl(stPropName As String, _
 PropType As DAO.DataTypeEnum, vPropVal As Variant) _
 As Boolean
 ' Uses the DDL argument to create a property
 ' that only Admins can change.
 '
 ' Current CreateProperty listing in Access help
 ' is flawed in that anyone who can open the db
 ' can reset properties, such as AllowBypassKey
 '
    On Error GoTo ChangePropertyDdl_Err
    Dim db As DAO.Database
    Dim prp As DAO.Property
    Const conPropNotFoundError = 3270
    Set db = CurrentDb
    ' Assuming the current property was created without
    ' using the DDL argument. Delete it so we can
    ' recreate it properly
    db.Properties.Delete stPropName
    Set prp = db.CreateProperty(stPropName, _
     PropType, vPropVal, True)
    db.Properties.Append prp
    ' If we made it this far, it worked!
    ChangePropertyDdl = True
ChangePropertyDdl_Exit:
    Set prp = Nothing
    Set db = Nothing
    Exit Function
ChangePropertyDdl_Err:
    If Err.Number = conPropNotFoundError Then
        ' We can ignore when the prop does not exist
        Resume Next
    End If
    Resume ChangePropertyDdl_Exit
End Function

 [cut]
la usi in questo modo:
per disabilitare l'effetto
 ChangePropertyDdl("AllowBypassKey", dbBoolean, False)
per abilitare l'effetto
 ChangePropertyDdl("AllowBypassKey", dbBoolean, True)
non ho provato, ma dovrebbe funzionare
 Function ChangePropertyDdl(stPropName As String, _
  PropType As integer, vPropVal As Variant) _
  As Boolean
  '           ^^^^^^^MODIFICA

-- 
Federico
--------------------------------------
Sito Comune di it.comp.appl.access
http://members.xoom.it/it_db_access
mailto:
it_db_...@usa.net
--------------------------------------
Tutte le richieste che mi arrivano
in privato, vengono cestinate.
--------------------------------------
Rimuovi paperino. per e-mail
--------------------------------------