Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Schaltfläche in neu geöffnetem Formular soll nicht sichtbar sein

Begonnen von tismo, Januar 21, 2021, 20:33:18

⏪ vorheriges - nächstes ⏩

tismo

Hallo,

aus einem Textfeld wird per doppelklick ein neues Formular (Kunde) geöffnet. Dann soll die Schaltfläche (1) nicht sichtbar sein.

Habe folgende vba geschrieben

Private Sub KurzzeichenKunde_DblClick(Cancel As Integer)


  Const ZielFormular As String = "Kunde"

   If IsNull(Me.KurzzeichenKunde) Then
      DoCmd.OpenForm ZielFormular, DataMode:=acFormAdd
   Else
      DoCmd.OpenForm ZielFormular, , , BuildCriteria("KurzzeichenKunde", dbLong, Me.KurzzeichenKunde)
   End If
   
   
   
    Me![Kunde].[Schaltfläche].Visible = False
   
End Sub

Me![Kunde].[Schaltfläche].Visible = False
funktioniert nicht... :-\  hat jemand eine Idee ?

MzKlMu

Hallo,
Private Sub KurzzeichenKunde_DblClick(Cancel As Integer)
   If IsNull(Me.KurzzeichenKunde) Then
      DoCmd.OpenForm "Kunde", DataMode:=acFormAdd
   Else
      DoCmd.OpenForm "Kunde", , , "KurzzeichenKunde =" & Me.KurzzeichenKunde
   End If
      Me.[Schaltfläche].Visible = False
End Sub
Me. ist das Formular, da braucht es nicht noch ein Form, bei "Me.KurzzeichenKunde" hast Du es richtig gemacht.
Die Konstante (Const) macht hier keinen Sinn und ist ersatzlos überflüssig.
Auf BuildCriteria kann hier auch verzichtet werden, schadet zwar nicht, ist aber in diesem einfachen Fall nicht notwendig.
Gruß Klaus

tismo

Hallo Klaus,

danke für deine Nachricht. Allerdings funktioniert die Prozedur nun nicht mehr einwandfrei und das eigentliche Problem ist nicht gelöst. Ich lasse den ersten Teil so, wie ich ihn geschrieben hatte.

  Const ZielFormular As String = "Kunde"

   If IsNull(Me.KurzzeichenKunde) Then
      DoCmd.OpenForm ZielFormular, DataMode:=acFormAdd
   Else
      DoCmd.OpenForm ZielFormular, , , BuildCriteria("KurzzeichenKunde", dbLong, Me.KurzzeichenKunde)
   End If


Nun nochmal zum eigentlichen Problem

Aus einem ungebundenem Textfeld wird per Doppelklick ein neues Formular (Kunde) geöffnet (funktioniert einwandfrei).
Gleichzeitig soll in dem dann geöffnetem Formular die Schaltfläche [Schaltfläche] nicht sichtbar sein.

Me![Schaltfläche].Visible = False
Fehler:

Laufzeitfehler '2465':

(...) kann das in Ihrem Feld angesprochene Feld 'Schaltfläche' nicht finden.
 ???

MzKlMu

Hallo,
nimm die Fehlermeldung wörtlich.
Allerdings funktioniert die Prozedur nun nicht mehr einwandfrei Was funktioniert denn dann nicht?


PS:
Deine Signatur ist in der heutigen Zeit daneben und eher peinlich als lustig.
Gruß Klaus

tismo

Hallo,

nach Öffnen des Formulars (Kunde) soll in diesem Formular die Schaltfläche [Schaltfläche] unsichtbar sein.

Das hat folgenden Grund:
Das Formular Kunde kann von mehreren Textfeldern per Doppelklick aufgerufen werden. Durch Klicken auf besagter Schaltfläche werden die Daten aus dem Formular Kunde in ein bestimmtes Formular eingefügt. Das soll allerdings nur möglich sein, wenn das Formular von einem bestimmten und nicht allen Textfeldern geöffnet wird. Deshalb soll die Schaltfläche beim Doppelklick von diesem Textfeld nicht sichtbar sein.

MzKlMu

Hallo,
Du brauchst den vollen Formularbezug, hatte ich auch übersehen.
Also so:
Forms!Kunde.Form!Schaltfläche.Visible = FalseBeachte Forms und Form und ! und .

Die Zuweisung der Konstante ist überflüssig.
Gruß Klaus

tismo