Access geminimaliseerd opstarten

Status
Niet open voor verdere reacties.

PolBE

Gebruiker
Lid geworden
12 okt 2016
Berichten
53
Beste forum

Ik heb een goed draaiend programma waarbij bij het opstarten het eerste scherm opstart in full screen. Zo zie je alleen dit scherm en is alles afgedekt zoals menu en ook de taakbalk onderaan. Nu, voor dit eerste scherm zie je Access nog opstarten en ik zou graag zien dat het eerste scherm direct zichtbaar is.
Ik ben al tevreden als Access kon opstarten geminimaliseerd alsof je dus het - teken aanklikt
Kan het echter nergens vinden.

Hartelijk dank voor een goede tip
 
Heb je wel op de goede plek gekeken? (Dit forum namelijk). Het onderwerp komt nog wel eens langs, en dus ook de code

OctaFish, ik heb echt al veel gezocht en kan het niet vinden. Wel dat je de statusbalk en menubalk kan onzichtbaar maken maar dat is niet wat ik zoek. Het programma opstarten zoals je een "stand alone" programma ziet opstarten. Moet nadien bij aanpassingen ook weer naar normaal kunnen worden omgezet.
Wil je me tip geven waar ik dit vind.
Bedankt
Pol
 
Die code staat in de link in mijn vorige bericht. En wil je ophouden met complete berichten te quooten? Iemand die mijn berichtje niet kan vinden (waarom quoot je 'm anders?) heeft echt een andere bril nodig...
 
[En wil je ophouden met complete berichten te quooten? Iemand die mijn berichtje niet kan vinden...]

Is dit de manier waarop er gereageerd wordt? Bijt mijn neus niet af hé. Ik had er over gezien dat de link naar de code er stond. Sorry, ik ben niet meer van de jongste maar beleeft zijn is van alle leeftijden zou ik denken.
 
Laatst bewerkt:
Ik ben ook niet meer de jongste, dus dat hebben we dan gemeen :). Het feit dat je de link met de code niet kon vinden, houdt nog niet in dat je dan maar het bericht (dat er, nogmaals, gewoon pal boven staat) moet quoten. Gewoon vragen waar de link dan staat, is meer dan genoeg :). Hoor en wederhoor, of in dit geval: vraag - antwoord - vraag - antwoord. Etc.
 
OctaFish
Bedankt voor de aanwijzing waar de code stond. Ik heb nu tijd gevonden om het uit te testen en krijg hierbij een foutmelding.
Compileerfout:
"Function niet gedefinieerd" maar dit lijkt toch juist te zijn , ik zie de fout niet.

Code:
Dim loX As Long
......
loX = apiShowWindow(hWndAccessApp, nCmdShow)
 
Ik vermoed dat je nog wat bibliotheken aan moet zetten. In ieder geval de Office bibliotheken. Daarnaast wellicht de Scripting Runtime en Shell Controls.
 
api functies zijn windows functies die moeten gedeclareerd worden:

Code:
Private Declare Function apiShowWindow Lib "user32" _
    Alias "ShowWindow" (ByVal hwnd As Long, _
          ByVal nCmdShow As Long) As Long
 
Bedankt voor de hint maar het gaat me een beetje boven mijn petje. Ik heb dit laatste getest maar ik krijg nog steeds foutmeldingen.
Ik ga het maar laten zonder deze procedure. Procedures die dieper in het systeem gaan heb ik geen nota van.

Toch bedankt voor jullie moeite
 
De complete code (dus inclusief de API) is deze:
Code:
Option Compare Database

Private Declare Function IsWindowVisible Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
Dim dwReturn As Long

'ALL of this will go into you VAB modal
''Const SW_HIDE = 0
''Const SW_SHOWNORMAL = 1
''Const SW_SHOWMINIMIZED = 2
''Const SW_SHOWMAXIMIZED = 3
Global Const SW_HIDE = 0
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2
Global Const SW_SHOWMAXIMIZED = 3

Code:
Public Function fAccessWindow(Optional Procedure As String, Optional SwitchStatus As Boolean, Optional StatusCheck As Boolean) As Boolean
    If Procedure = "Hide" Then
        dwReturn = ShowWindow(Application.hWndAccessApp, SW_HIDE)
    End If
    If Procedure = "Show" Then
        dwReturn = ShowWindow(Application.hWndAccessApp, SW_SHOWMAXIMIZED)
    End If
    If Procedure = "Minimize" Then
        dwReturn = ShowWindow(Application.hWndAccessApp, SW_SHOWMINIMIZED)
    End If
    If SwitchStatus = True Then
        If IsWindowVisible(hWndAccessApp) = 1 Then
            dwReturn = ShowWindow(Application.hWndAccessApp, SW_HIDE)
        Else
            dwReturn = ShowWindow(Application.hWndAccessApp, SW_SHOWMAXIMIZED)
        End If
    End If
    If StatusCheck = True Then
        If IsWindowVisible(hWndAccessApp) = 0 Then
            fAccessWindow = False
        End If
    If IsWindowVisible(hWndAccessApp) = 1 Then
        fAccessWindow = True
        End If
    End If
End Function
Code:
Function fSetAccessWindow(nCmdShow As Long)
'************ Code Start **********
' This code was originally written by Dev Ashish.
' It is not to be altered or distributed, except as part of an application.
' You are free to use it in any application, provided the copyright notice is left unchanged.
'
' Code Courtesy of Dev Ashish

'Usage Examples
'Maximize window:
' ?fSetAccessWindow(SW_SHOWMAXIMIZED)
'Minimize window:
' ?fSetAccessWindow(SW_SHOWMINIMIZED)
'Hide window:
' ?fSetAccessWindow(SW_HIDE)
'Normal window:
' ?fSetAccessWindow(SW_SHOWNORMAL)
'
Dim loX As Long
Dim loForm As Form
On Error Resume Next

    Set loForm = Screen.ActiveForm
    If Err <> 0 Then 'no Activeform
        If nCmdShow = SW_HIDE Then
            MsgBox "Cannot hide Access unless a form is on screen"
        Else
            loX = apiShowWindow(hWndAccessApp, nCmdShow)
            Err.Clear
        End If
    Else
        If nCmdShow = SW_SHOWMINIMIZED And loForm.Modal = True Then
            MsgBox "Cannot minimize Access with " _
            & (loForm.Caption + " ") _
            & "form on screen"
        ElseIf nCmdShow = SW_HIDE And loForm.PopUp <> True Then
            MsgBox "Cannot hide Access with " & (loForm.Caption + " ") & "form on screen"
        Else
            loX = apiShowWindow(hWndAccessApp, nCmdShow)
        End If
    End If
    fSetAccessWindow = (loX <> 0)

End Function

Zet de complete code op een aparte module, en het zou moeten werken.
 
Hoi, mocht de foutmelding komen van het feit dat je met een 64 bit systeem werkt, ptrSafe aan de declaratie toevoegen
 
Nog mooier: gooi dan de 64 bits versie weg en vervang hem door de 32 bits versie. Daar word je een heel stuk gelukkiger van :).
 
Sorry mannen voor het late antwoord maar was een tijdje buiten strijd.

Nu, ik heb de code's getest, maar krijg foutmeldingen van Access, iets met geheugen. Ik heb wel degelijk een 64 bits Office, als dit het probleem is kan ik er verder niets mee doen.
Bedankt voor jullie hulp maar ik hou het voor gezien, het werkt verder perfect dus laat ik het maar zo.

Groeten
 
Mocht je toch nog de kriebels krijgen om het nog eens te proberen, voor 64-bit de declaratie aanpassen
van
declare function …..
naar
declare ptrsafe function

zou moeten werken dan
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan