knop X op formulier A verbergen als formulier B geopend is (en andersom)

Status
Niet open voor verdere reacties.

MJJBROEKHUI

Gebruiker
Lid geworden
6 jun 2001
Berichten
175
Ik heb formulier A met alle ordernummers en als ik een ordernummer selecteer wil ik de details van de order in het orderformulier B openen.

Dit is allemaal geen probleem, maar het gedetaillleerde orderformulier B bevat een knop X met diverse commando's. Deze knop X mag niet zichtbaar zijn als ik orderformulier B openen via formulier A. Als ik formulier B open via een andere formulier moet deze knop X wel zichtbaar zijn.

Ingeval Knop X niet zichtbaar moet Knop Y wel zichtbaar zijn.

Ik heb dit geprobeerd op te lossen met volgende VBA code bij OnCurrent.

If Forms![FormulierB].Visible = True Then
[KnopX].Visible = False
[KnopY].Visible = True
Else
[KnopX].Visible = True
[KnopY].Visible = False
End If

Dit commando werkt goed als Formulier B daadwerkelijk open is. Knop X niet zichtbaar en Knop Y wel, maar als Formulier B niet open is krijg ik een VBA foutmelding "End" of "Debug".

Ik heb het ook geprobeerd met IsOpen en IsLoaded, maar dit werkt niet.

Wie kan mij helpen?
Alvast dank!
Marco
 
Ik heb een simpel testje gemaakt op een formulier, en dat werkt prima:

Code:
Private Sub Form_Open(Cancel As Integer)
    If fIsLoaded("Formulier zoek klant") Then
        Me.KnopX.Visible = True
    Else
        Me.KnopX.Visible = False
    End If
End Sub
En de functie:
Code:
Function fIsLoaded(ByVal strFormName As String) As Integer
    If SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> 0 Then
        If Forms(strFormName).CurrentView <> 0 Then
            fIsLoaded = True
        End If
    End If
End Function
 
Dank voor je antwoord. Helaas ben ik nog niet zo thuis in het maken van functies.

Ik heb in een nieuwe module de tekst van fIsLoaded geplakt en deze bewaard onder de naam fIsLoaded. In het formulier heb ik onder On Open de tekst van de code geplakt.

Als ik het formulier nu open verschijnt de foutmelding "Compile error: Expected variable or procedure not module". De tekst fIsLoaded is blauw geacceerd.

Wat doe ik verkeerd? Is het mogelijk als je een klein voorbeeldje plaatst zodat ik kan zien hoe module werken?

Wederom dank!
 
Als ik het zo lees heb je de module dezelfde naam gegeven als de functie, en dat gaat niet. De module mag elke naam hebben die je wilt, maar dus niet de naam van een functie. Als je de functie die ik heb gepost in die module hebt geplakt, moet-ie het verder gewoon doen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan