Newsgroup: it.comp.appl.access
Titolo: Nascondere/mostrare la finestra database (sito donkarl).

La faq 
www.donkarl.com/it?FAQ6.2
 indica questo codice:
    DoCmd.SelectObject acTable, , True
    RunCommand acCmdWindowHide
allora ho messo per prova questo codice in una funzione, e la chiamo
da un pulsante in una maschera.
Invece di sparirmi il resto, mi è sparita la maschera in questione.
Io volevo provarla come alternativa all'altra sua soluzione, proposta
in 1.11 Nascondere la finestra principale di Access, 
www.donkarl.com/it?FAQ1.11
,
per un problema che posterò dopo.
Ovviamente non ho capito qualcosa... e cioè: dovrebbe sparirmi la
finestra principale, o serve ad altro?
Riccardo Baldinotti

 ha scritto nel messaggio 
news:23838b13-e094-427c...@v15g2000yqn.googlegroups.com...

Strano a me funziona benissimo sia da codice nel modulo della maschera che 
da codice in un modulo pubblico.
Domanda forse sciocca: non è che la finestra database è già nascosta? I 
riferimenti sono a posto?
Ciao, Carlo 

 Ciao, Carlo
Ehm, hai ragione. Ho provato ad aprire una maschera e avviare la cosa
e tutto va, anche se la sparizione della barra laterale non è un
evento da urlo. L'errore nasceva dal fatto che nel mio primo tentativo
avevo avviato la funzione da una maschera aperta con la routine che
citavo, quella di 1.11 Nascondere la finestra principale di Access,
www.donkarl.com/it?FAQ1.11
.
Tutto bene. Allora introduco la domanda principale. Lunghina...
- - - -  - - - - - - - - - -
Le mie capacità grafiche sono inferiori a quelle di programmazione...
per cui ho preso, per un nuovo applicativo, il formato delle maschere
preparate in precedenza da un collega.
Apro le maschere avendo scopiazzato da 1.11 Nascondere la finestra
principale di Access, 
www.donkarl.com/it?FAQ1.11
, ma modificato come
segue:
Sub aprimaschera(stDocName)
Dim nCmdShow As Long
DoCmd.SetWarnings False
Dim nCmdShow As Long
DoCmd.SetWarnings False
DoCmd.OpenForm stDocName, acDesign
If Forms!stato!livello = "A" Then
    nCmdShow = 1
    Forms(stDocName).PopUp = False
    Forms(stDocName).Modal = False
Else
    nCmdShow = 0
    Forms(stDocName).PopUp = True
    Forms(stDocName).Modal = True
End If
DoCmd.MoveSize , 500
DoCmd.Close acForm, stDocName, acSaveYes
DoCmd.SetWarnings True
DoCmd.OpenForm stDocName
Call aprila(stDocName, nCmdShow)
End Sub
Sub aprila(stDocName, nCmdShow)
    Dim hw As Long
    hw = Forms(stDocName).hWnd
    Dim hWindow As Long
    Dim nResult As Long
    hWindow = Application.hWndAccessApp
    nResult = ShowWindow(ByVal hWindow, ByVal nCmdShow)
    Call ShowWindow(hw, 1)
End Sub
la ragione è che chi ha livello "A" di accesso (semdiei) deve vedere
le maschere e tutti i menu, oggetti, ecc., mentre chi ha un altro
livello (peones) ha accesso solo alla maschera appena aperta.
La caratteristica .Picture delle maschere riporta "(bitmap)", un bello
sfondo, ma quando due o tre maschere si sovrappongono, non si
distingue bene il bordo (sottile) della maschera in primo piano.
Allora la geniata: all'evento Su Disattivazione e Su Attivazione do un
comando del tipo
Forms(masch).PictureTiling = n
dove masch è la maschera interessata, e n può essere True o False.
Purtropo, mentre i semidei vedono le maschere in sottofondo perdere il
colore che rimane solo alla maschera in primo piano, i peones
continuano invece ad avere tutte le maschere ugualmente "sfondate".
Una soluzione potrebbe essere quella di dare bitmap diverse alle varie
maschere, o colorarle senza bitmap, ma volevo insistere in questa
strada per: a) imparare qualcosa; b) evitare gli inconvenienti delle
mie grafiche; c) evitarmi modifiche a oltranza di colori, pulsanti,
formattazioni condizionali.
A questo punto, dovrei modificare l'oggetto della questione...
Grazie
Riccardo Baldinotti

 ha scritto
A questo punto, dovrei modificare l'oggetto della questione...
Grazie
Riccardo Baldinotti
Certamente, apri un nuovo post...avrai più possibilità di risposta.
Personalmente ci ho capito ben poco.
Ciao, Carlo