JeroenMioch
Gebruiker
- Lid geworden
- 1 dec 2007
- Berichten
- 215
Beste mensen,
Ik heb een module die er voor zorgt dat de gebruikers van mijn database een door mij gemaakte knop "sluiten" moeten gebruiken om het formulier af te sluiten, in plaats van het kruisje helemaal rechtboven in je scherm. Op zich werkt dit goed maar er komt een bug om de hoek kijken;
Zodra ik een rapport print verschijnt het kruisje en kunnen de gebruikers hier toch weer op klicken. Nou sluit de database dan niet helemaal (grijs scherm) en moet men afsluiten met ALT-F4, maargoed. Waar het om gaat is dat men mijn knop gebruikt zodat er controle op de ingevulde velden kan plaatsvinden.
Dit staat in de module :
En dit moest gebruikt worden om het te executen :
Nou heb ik uiteraard geprobeerd om via de gebeurtenisprocedure van de knop om mijn rapport te printen de module aan te roepen in de hoop dat ie het weer uitvoerd, maar dit gebeurd niet.
Waar ik HideAccessCloseButton of Call HideAccessCloseButton ook gebruik, het resultaat blijft onverminderd teleurstellend
Iemand enig idee hoe dit probleem op te lossen, of betrouwbaardere methodes om te zorgen dat mijn gebruikers de database niet kunnen afsluiten zonder bepaalde verplichte velden in te vullen ?
Ik heb een module die er voor zorgt dat de gebruikers van mijn database een door mij gemaakte knop "sluiten" moeten gebruiken om het formulier af te sluiten, in plaats van het kruisje helemaal rechtboven in je scherm. Op zich werkt dit goed maar er komt een bug om de hoek kijken;
Zodra ik een rapport print verschijnt het kruisje en kunnen de gebruikers hier toch weer op klicken. Nou sluit de database dan niet helemaal (grijs scherm) en moet men afsluiten met ALT-F4, maargoed. Waar het om gaat is dat men mijn knop gebruikt zodat er controle op de ingevulde velden kan plaatsvinden.
Dit staat in de module :
Code:
Private Const GWL_EXSTYLE = (-20)
Private Const GWL_STYLE = (-16)
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_SYSMENU = &H80000
Private Const HWND_TOP = 0
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_FRAMECHANGED = &H20
Private Const SWP_DRAWFRAME = SWP_FRAMECHANGED
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 Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal x As Long, ByVal y As Long, ByVal cx As Long, _
ByVal cy As Long, ByVal wFlags As Long) As Long
Sub HideAccessCloseButton()
Dim lngStyle As Long
lngStyle = GetWindowLong(hWndAccessApp, GWL_STYLE)
lngStyle = lngStyle And Not WS_SYSMENU
Call SetWindowLong(hWndAccessApp, GWL_STYLE, lngStyle)
Call SetWindowPos(hWndAccessApp, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_DRAWFRAME)
End Sub
En dit moest gebruikt worden om het te executen :
Code:
Private Sub Command0_Click()
HideAccessCloseButton
End Sub
Nou heb ik uiteraard geprobeerd om via de gebeurtenisprocedure van de knop om mijn rapport te printen de module aan te roepen in de hoop dat ie het weer uitvoerd, maar dit gebeurd niet.
Waar ik HideAccessCloseButton of Call HideAccessCloseButton ook gebruik, het resultaat blijft onverminderd teleurstellend

Iemand enig idee hoe dit probleem op te lossen, of betrouwbaardere methodes om te zorgen dat mijn gebruikers de database niet kunnen afsluiten zonder bepaalde verplichte velden in te vullen ?
Laatst bewerkt: