Newsgroup: it.comp.appl.access
Titolo: Apertura maschera

Buona domenica
Come posso aprire un'altra maschera e renderla attiva prima dell'apertura di
una maschera.
Cioč devo inserire una password prima di visualizzare la maschera.
La chiamata alla maschera della password dovrebbe essere contenuta nella
maschera protetta in modo che non possa aprirla senza passare dalla maschera
di inserimento password.
Grazie, Alberto

ALCAU ha scritto nel messaggio ...

Preparati una funzione di questo tipo
Function caricata (Nomeform As String) As Integer
    Dim i As Integer
    caricata = False
    For i = 0 To forms.count - 1
        If forms(i).FormName = Nomeform Then
            caricata = True
            Exit Function       ' Termina il ciclo dopo aver trovato la
scheda.
        End If
    Next
End Function
Poi, all'evento su apertura della maschera di lavoro scriverai
    If Not caricata("Scheda Password") Then
        MsgBox "Aprire la scheda principale dalla scheda password", 16
        DoCmd CancelEvent
    End If
Forse bisogna modificare leggermente la sintassi per access 97 (č uno
spezzone di codice che usavo in access 2)
Antonio

di inserimento password.
Una domanda semplice ma che richiede una lunga risposta.
Una strada potrebbe essere questa:
Definisci una variabile globale di tipo booleano: Global PassCorretta as
Boolean.
Setta la variabile a FALSE: PassCorretta = False su apertura della prima
maschera.
Imposta "a scelta obbligatoria" = sģ la maschera di verifica della password.
Apri la prima maschera ed esegui la funzione che tiene aperta la seconda
maschera fino a che la password č sbagliata.
Se la password č corretta la funzione chiude la maschera di verifica.
Per spiegarmi meglio ti descrivo i passaggi.
Crea il segunte modulo: (usare Binary per la corrispondenza tra minuscole e
maiuscole e cambiare il nome delle maschere per adattarlo al tuo database)
Option Compare Binary
Option Explicit
Global PassCorretta As Boolean
Global MiaPass As String
Public Function VerificaPass()
On Error Resume Next
    MiaPass = "1AaBb2C" 'scegli tu la password da impostare
    If Forms!MTabella2!Pass = MiaPass Then
    PassCorretta = True
    MsgBox "PassWord corretta."
    Exit Function
    Else
    PassCorretta = False
    MsgBox "PassWord non corretta.Ritenta!"
    Forms!MTabella2!Pass.SetFocus
    Exit Function
    End If
End Function
Costruisci una maschera di verifica PassWord con un campo che si chiama
"Pass". Aggiungi un pulsante di chiusura.
Sull'evento "Disattivato" del controllo "Pass" scrivi quanto segue:
Private Sub Pass_LostFocus()
Call VerificaPass 'chiama la funzione di verifica
End Sub
Sull'evento "Chiusura" di questa seconda maschera scrivi:
Private Sub Form_Close()
If VerificaPass Then
Exit Sub
Else
DoCmd.Quit acQuitSaveAll
End If
End Sub
Sull'evento "Apertura" della prima maschera che qui chiamo "MTabella1"
scrivi quanto segue:
Private Sub Form_Open(Cancel As Integer)
PassCorretta = False
            DoCmd.OpenForm "MTabella2" 'sostituisci con il nome della tua
maschera
            Forms![MTabella2]!Pass.SetFocus
                While PassCorretta = False
                DoEvents
                Wend
End Sub
Imposta l'intervallo timer di questa maschera a 500
Sull'evento "Timer" scrivi quanto segue:
Private Sub Form_Timer()
If PassCorretta Then
DoCmd.Close acForm, "MTabella2" 'sostituisci con il nome della tua maschera
Me.TimerInterval = 0
End If
End Sub
Il tutto é stato da me testato e funziona con Access 7 e seguenti.
Se ci sono problemi scrivimi e sarņ felice di aiutarti.
Un'ultima cosa. Nell'esempio riportato ho previsto una password specifica e
solo da te impostata. L'esempio ha valore solo se distribuisci
l'applicazione con il runtime di Access, altrimenti chiunque potrą leggere
la password. Comunque mi interessava farti vedere una strada percorribile
per bloccare una maschera fino al verificarsi di un determinato evento su
una seconda maschera.
Ciao, Carlo
--
Posted from 
ro...@www.paola.antares.it
 [195.216.145.2]
via Mailgate.ORG Server - 
http://www.mailgate.org


http://www.penguinpowered.com/~ecesena
La nebbia agli irti colli piovigginando scende...  o sale?  Boh?!?
		-- Enrico Beruschi