Hej! Skippa krysset i själva Access tror jag inte går, varför vill du det? Användarna måste väl kunna stänga applikationen? När användarna stänger ner som de ska, dvs via en exit-knapp på ett formulär så utförs ett antal funktioner som måste utföras vid stängning av applikationen. Där stänger jag även access via koden så de behöver aldrig stänga access manuellt. Lägg detta i en modul Hej Staffan! OK. Var har du koden som utför dina "stängningsrutiner"? Form_Unload (osäker på om den heter det) , eller bara under din Exitknapp? Jag har den nu under min "exit-knapp" men har även provat att lägga den under form_close men den går aldrig in där om man stänger access före man stänger formuläret så att säga. Hade du provat med Form_Unload som jag skrev i förra svaret? Den händelsen triggas av följande (utdrag ur Acces hjälpen):Fånga händelsen när access stängs?
Jag undrar om man kan fånga händelsen när access stängs ned via krysset.
Mvh,
SofiaSv: Kan man ta bort x-et i access
Har du ett huvudformulär kan du säkert använda OnClose funktionen i det formuläretSv: Kan man ta bort x-et i access
Om användarna stänger access med kryssrutan så utförs inte funktionerna som behövs vid stängning.
Jag skulle därför antingen behöva inaktivera kryss-rutan (vilket inte verkar fungera) alternativt, som vore den allra bästa lösningen, veta om det går, och i såna fall hur man fångar händelsen att någon klickat på krysset.
Jag har provat att använda on close-händelsen på mitt huvudformulär men det fungerar inte vid stängning av access mha krysset.
Mvh,
/SOfiaSv: Kan man ta bort x-et i access
<code>
Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Const MF_BYPOSITION = &H400&
Public Const WM_CLOSE = &H10
Public AppTitle As String
Public ApphWnd As Long
Public Sub RemoveCloseMenu(frm As Form)
Dim hSysMenu As Long
' Get the system menu for the form
hSysMenu = GetSystemMenu(frm.hwnd, 0)
' Remove the close item
Call RemoveMenu(hSysMenu, 6, MF_BYPOSITION)
' and the seperator
Call RemoveMenu(hSysMenu, 5, MF_BYPOSITION)
End Sub
</code>
Skriv sedan in detta i Form_Load:
<code>
RemoveCloseMenu Me
</code>
Detta inaktiverar krysset vid formulärets uppstart.Sv: Kan man ta bort x-et i access
Efter vad jag kan förstå så tar denna kod bort krysset på formuläret som laddas? Det är inte det jag vill göra utan ta bort krysset på access, själva skalet.
Fast allra helst skulle jag ju vilja hantera händelsen när de stänger ner access via krysset om det är min applikation de har öppet när de stänger.
Mvh,
SofiaSv: Kan man ta bort x-et i access
Jag fattade fel. Men då tror jag nog är det är som Ulf skriver. Det ska nog inte gå att disabla kryssrutan i Access.Sv: Kan man ta bort x-et i access
Sv: Kan man ta bort x-et i access
Mvh,
SofiaSv: Kan man ta bort x-et i access
The Unload event occurs after a form is closed but before it's removed from the screen.
The Unload event is caused by user actions such as:
* Clicking a Form window's Close button or clicking Close on the File menu or a form's Control menu.
* Running the Close action in a macro.
*Quitting an application by right-clicking the application's taskbar button and then clicking Close.
*Quitting Windows while an application is running.
Och då verkar det som om punkt 3 och 4 kommer att uppfylla dina önskningar =)