Newsgroup: it.comp.appl.access
Titolo: trasferire proprietà della maschera alla sottomaschera

Ciao a tutti avrei bisogno che le proprietà della maschera principale
fossero ereditate anche dalle sue sottemaschere e per questo
nell'evento di apertura della maschera principale ho messo:
Me!maschera2.Form.AllowAdditions = Me.AllowAdditions
Me!maschera2.Form.AllowDeletions = Me.AllowDeletions
Me!maschera.Form.AllowEdits= Me.AllowEdits
in questo modo però la sottomaschera2 eredità solo quelle condizioni
che sono state inserite nella maschera proprietà della maschera
principale e non quelle attribuite all'utente dalla login di accesso.
Qualcuno può aiutarmi a risolvere? grazie

 
se non esponi come hai realizzato la gestione delle politiche di 
sicurezza le risposte avranno una infima accuratezza
i.e
select case myUserType
	case 1: ...bla bla
	case 2: ...blibli
...... bloblo
end select
--
ac

 ac
ciao, innanzittutto grazie per la risposta,.
per quanto riguarda il mio post specifico che accedo alla maschera
Principale (maschera1) con click su un pulsante colloccato su un
pannello di controllo che apre la maschera principale (maschera1) in
base al tipo di autorizzazioni date all'utente. Queste stesse
autorizzazioni dovrei estenderle anche a tutte le sottomaschere della
sottomaschera principale (maschera1) che per l'esattezza sono:
maschera2, maschera3, maschera4 e maschera5.
allego codice:
Private Sub Comando0_Click()
Dim Nome As String
Nome = DLookup("nome", "tbl_utenti", "utente = forms!mascher4!UTENTE
and password = forms!mascher4!PASSWORD")
If Me.Testo2 = "A" Then
DoCmd.OpenForm "MAschera1", , , , , , Nome
Forms!maschera1.AllowAdditions = True
Forms!maschera1.AllowDeletions = True
Forms!maschera1.AllowEdits = True
ElseIf Me.Testo2 = "D" Then
DoCmd.OpenForm "MAschera1", , , , , , Nome
Forms!maschera1.AllowAdditions = True
Forms!maschera1.AllowDeletions = False
Forms!maschera1.AllowEdits = False
Else
Dim NrRec As Integer
NrRec = DCount("*", "Tabella1")
If NrRec = 0 Then
MsgBox "Attenzione non ci sono dati da visualizzare"
Else
DoCmd.OpenForm "MAschera1", , , , , , Nome
Forms!maschera1.AllowAdditions = False
Forms!maschera1.AllowDeletions = False
Forms!maschera1.AllowEdits = False
End If
End If
End Sub

 maschera2, maschera3, maschera4 e maschera5.
[cut]
Forse non mi sono spiegato.
Quello che vuoi e' chiaro.
Quello che e', invece, assolutamente oscuro  e' cosa sono le 
"autorizzazioni date all'utente".
Rispetto a cio' dovresti esplicitare le quattro "W" di Gableiana memoria 
(where, when, what, why)
Dovresti citare inoltre la versione access io sono fermo ad A2003.
--
ac

 - Mostra testo citato -
le autorizzazioni date all'utente sono quelle che leggi nel codice che
riportato sopra il caso D che è quello che mi interessa di più ha
diritti di inserimento dati e basta
la versione che uso di access è la 2003

 la versione che uso di access � la 2003
Quello che leggo non definisce *autorizzazioni*
Quello che leggo e' questo:
1) Restituisci un qualcosa (nome utente?) in base a  Utente e password
2) In base al contenuto di una casella di testo non ben identificata 
(*testo2*, valori A o D o diverso) consenti o meno aggiornamenti, 
cancellazioni, inserimento.
Q:
1) Chi definisce il valore di testo2? Da dove lo prendi?
2) Come leghi l'utente al valore di Testo2?
--
ac

 - Mostra testo citato -
credo da qui
Private Sub Comando10_Click()
On Error GoTo Err_Comando10_Click
If Len(Me!utente & "") = 0 Or _
Len(Me!password & "") = 0 Then
MsgBox "ATTENZIONE, INSERISCI USER E PASSWORD"
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.SetWarnings True
Else
Me.data_accesso = Now()
Controlla_Dati = DCount("id", "tbl_utenti", "utente = forms!mascher4!
UTENTE and password = forms!mascher4!PASSWORD")
If Controlla_Dati = 1 Then
Dim abilitazione As String
Dim msg As Integer
abilitazione = DLookup("Abilitazione", "tbl_utenti", "utente = forms!
mascher4!UTENTE and password = forms!mascher4!PASSWORD")
Select Case abilitazione
Case "a"
Nome = DLookup("nome", "tbl_utenti", "utente = forms!mascher4!UTENTE
and password = forms!mascher4!PASSWORD")
Me.Visible = False
DoCmd.OpenForm "PannelloComandi", , , , , , Nome
Forms!PannelloComandi!Testo2.Value = "A"
Case "b"
Nome = DLookup("nome", "tbl_utenti", "utente = forms!mascher4!UTENTE
and password = forms!mascher4!PASSWORD")
Me.Visible = False
DoCmd.OpenForm "PannelloComandi", , , , , , Nome
Forms!PannelloComandi!Testo2.Value = "B"
Case "d"
Nome = DLookup("nome", "tbl_utenti", "utente = forms!mascher4!UTENTE
and password = forms!mascher4!PASSWORD")
Me.Visible = False
DoCmd.OpenForm "PannelloComandi", , , , , , Nome
Forms!PannelloComandi!Testo2.Value = "D"
Case Else
    Dim strMsg As String, strTitolo As String
    Dim intStile As Integer
   strMsg = "Non sei ancora abilitato all'uso del programma"
   intStile = vbOKOnly + vbInformation
   strTitolo = "ATTENZIONE"
   MsgBox strMsg, intStile, strTitolo
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.SetWarnings True
End Select
Else
If MsgBox("ATTENZIONE VERIFICA L'ESATTEZZA DEI DATI INSERITI, VUOI
RIPROVARE?", vbYesNo + vbCritical, "ATTENZIONE") = vbNo Then
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.SetWarnings True
DoCmd.Quit
Else
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.SetWarnings True
Exit_Comando10_Click:
    Exit Sub
Err_Comando10_Click:
    Resume Exit_Comando10_Click
End If
End If
End If
End Sub
Private Sub Etichetta12_Click()
DoCmd.OpenForm "registrazione", acNormal, , , acFormAdd 'inserimento
DoCmd.OpenForm "mascher4", , , , , acHidden
End Sub
Private Sub Form_Open(Cancel As Integer)
DoCmd.GoToRecord acForm, Me.Name, acNewRec
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error GoTo errore
If Len(Me!utente & "") = 0 Or _
Len(Me!password & "") = 0 Then
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.SetWarnings True
Exit Sub
errore:
If err.Number = 2046 Then
Resume Next 'oppure Exit Sub
End If
End If
End Sub
Private Sub utente_AfterUpdate()
Me.utente = UCase(Mid(Me.utente, 1, 1)) & LCase(Mid(Me.utente, 2))
End Sub

Alessandro Cara ha scritto:
[cut]
P.S.
Tra una piega e l'altra (in moto) credo di aver finalmente compreso il 
tuo problema.
Devi spostare le istruzione nella load del form passando il parametro di 
autorizzazione.
Quando fai la openform viene eseguita la routine associata all'evento e 
le proprieta' del form non sono ancora state modificate indi alla 
subform viene associato il valore base di proprieta' della maschera 
principale. Tra l'altro quella openform che fai, se la tua intenzione e' 
di filtrare per Nome, e' sbagliata il parametro where e' dopo due virgole
Probabile istruzione corretta
OpenForm("Maschera1", , , "nome=" & Nome, , , "" & Testo2)
sulla routine di evento
if openargs = "A" then
      ......
elseif opeargs = "D" then
    ........
else
.......
endif
--
ac


wrote:

a riciao scusa ma mi sono perso :-(