Newsgroup: it.comp.appl.access
Titolo: Disattivare pulsante chiusura apertura maschera

Salve sono Fanciullo,
access97
Come posso all'apertura di una maschera disattivare il pulsante di chiusura 
(x) in alto a destra?
Ho provato nelle proprietą della maschera a scegliere
no nella proprieta pulsante di chiusura.
ma la x rimane e funziona!
grazie 

 grazie
Guarda su 
www.sitocomune.com
 c'è la soluzione
-- 
-- 
MAssimiliano Amendola
www.accessgroup.it
Cisa - Conferenza Italiana Sviluppatori Access

 ha scritto nel messaggio 
news:gdjtrb$bfm$1...@tdi.cu.mi.it...


Ho trovato nella sezione generale il file AccessBtnControl
dentro c'è una maschera con un pulsante che su click
mi nasconde i bottoni di comando a destra della finesta di access.
Ho visto in codice, ma non so come fare a applicarlo alla maschera aperta
Option Compare Database
Option Explicit
Private Declare Function SendMessage Lib "user32" _
 Alias "SendMessageA" _
 (ByVal hWnd As Long, ByVal wMsg As Long, _
 ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function SetWindowLong Lib "user32" _
 Alias "SetWindowLongA" (ByVal hWnd As Long, _
 ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" _
 Alias "GetWindowLongA" (ByVal hWnd As Long, _
 ByVal nIndex As Long) As Long
Private Const GWL_STYLE = -16
Private Const WS_SYSMENU = &H80000
Private Const WM_NCPAINT = &H85
Public Sub ShowAccessBtn(ShowIt As Boolean)
    On Error GoTo Errors
    Dim lngOldStyle As Long
    Dim lngNewStyle As Long
    Dim mhWnd As Long
    mhWnd = Application.hWndAccessApp
    'Legge il valore attuale
    lngOldStyle = GetWindowLong(mhWnd, GWL_STYLE)
    If ShowIt Then
        lngNewStyle = lngOldStyle Or WS_SYSMENU
    Else
        lngNewStyle = lngOldStyle And Not WS_SYSMENU
    End If
    'Questa è l'unica Funzione indispensabile
    'che esegue realmente il comando Hide/Show
    'dei Pulsanti
    Call SetWindowLong(mhWnd, GWL_STYLE, lngNewStyle)
    'Manda un Repaint alla Finestra di Access
    Call SendMessage(mhWnd, WM_NCPAINT, 1, 0)
ExitHere:
    Exit Sub
Errors:
   MsgBox Err.Description, vbCritical, "Errore n° = " & Err.Number
   Resume ExitHere
End Sub
Grazie Massimiliano, puoi fare qualcosa?

quello che trovi nel click del pulsante lo devi inserire in Form_Load
della maschera
che da quel che ho capito dovrebbe essere così:
Private Sub Form_Load()
     ShowAccessBtn(False)
End Sub
mentre la parte di codice che hai postato incollala in un modulo

 ha scritto nel messaggio 
news:87cb0b39-2e85-4747...@v28g2000hsv.googlegroups.com...
quello che trovi nel click del pulsante lo devi inserire in Form_Load
della maschera
che da quel che ho capito dovrebbe essere cosě:
Private Sub Form_Load()
     ShowAccessBtn(False)
End Sub
mentre la parte di codice che hai postato incollala in un modulo
Grazie, funziona cosě.
Ho guardato attentamente tutto il codice č ho capito qualcosa...ma  non a 
fondo. 

 ha scritto nel messaggio 
news:49000f23$0$18157$4faf...@reader3.news.tin.it...

Nienteeee, mi sono sbagliato. Viene sempre nascosto il pulsante della 
finestra di access non
quello della maschera attiva. 

 quello della maschera attiva.
Se vuoi disattivare quello della form attiva, tra le proprietą della 
maschera nella scheda formato setta no alla voce Pulsante di Chiusura.
-- 
Ciao
Geppo 

sito)
e quindi la proprietą non viene attivata: insomma il pulsante rimane ed č 
effettivo.
Per questo sto cercando una soluzione via codice
grazie

 grazie
[Casella Menù Controllo]=No
[Pulsante Chiusura]=No
Così a me non si presenta il Button [X].... se imposto solo la 2° è
disabilitato ma presente.
@Alex

, hai scritto:

Effettivamente Fanciullo ha ragione, la [X] non compare ma se massimizzi la 
form ciccia fuori.
-- 
Ciao
Geppo 


No se massimizzi la Form quello che vedi è la [X] di Access.
@Alex

 @Alex
Ok, è la [X] di access che fa chiudere la form. Comunque indipendentemente 
dalla [X], non si può eliminare ne utilizzando le API tanto meno 
disabilitando le proprietà. Dunque il problema della [x] permane.
-- 
Ciao
Geppo 

 Geppo
No stai sbagliando...!
@Alex

 @Alex
-- 
Ciao
Geppo 

 grazie
-- 
Ciao
Geppo 

non ti dico cosa è successo quando sull'evento unload
ho impostato
cancel = true
si è bloccato tutto, ovvero non chiudevo la maschera con il pulsante X
ma neanche access e qualsiasi altra finestra.  Non si esce da access
manco morto. CTRL+ALT+CANC
ciao
ciao 

 ciao
-- 
Ciao
Geppo 

A parte la gestione del tutto, come dici tu,
forse ti devo spiegare una cosa:
La maschera in questione serve all'avvio a
selezionare un valore che poi sarà usato in tutte
le altre operazioni: il valore è  es. 2007/08.
La maschera con un pulsante viene nascosta ma rimane
aperta e sempre operante
Me.Form.Visible = False
Il fatto è che l'utilizzatore a volte distrattamente  clicca sulla X,
la maschera viene chiusa e perdo il valore selezionato (2007/08),  impedendo
il funzionamento di  tutto il database.
Io dovrei impedire che la maschera venga chiusa.
se uso l'evento unload
cancel = true
è vero che non può chiudermi la maschera.
Ma non si chiude nulla altro compreso in database.
Capisci ora che c'è qualcosa di strano?
grazie

scrivi quel valore su una tabella con un campo solo
poi in un modulo te la dichiari tipo
Property Get TuoValoreFisso() As String 'o quello che è
TuoValoreFisso= DLookup("[NomeCampo]", "NomeTabella")
End Property
da qualsiasi parte avrai il valore restituito semplicemente scrivendo
TuoValoreFisso

 grazie
Prego
-- 
Ciao
Geppo