Access-o-Mania

Access-Forum => Access Programmierung => Thema gestartet von: qaudtc am April 26, 2021, 09:52:34

Titel: Control im Unterformular in VBA nicht verfügbar
Beitrag von: qaudtc am April 26, 2021, 09:52:34
Hallo an die Expertenrunde,

ich habe ein Problem mit dem Zugriff auf ein Control (hier ein KombiListenfeld) im Unterformular.
Me.frm_tst_UF.Form.<Control>VBA sollte doch normalerweise das Control im UFO per Autocompl. finden, tut es aber nicht.
Trage ich die Bezeichnung von Hand ein:
Me![frm_tst_UF].Form![Kombi2].RecordSource = SQLdann gibt es einen LZF: 438 Objekt unterstützt diese Eigenschaft oder Methode nicht :'(

Um es nachzustellen, habe ich eine kleine Test-DB erstellt, nur mit den benötigten Elementen. Ich bin ratlos. Das hat bisher immer funktioniert, hat sich das mit der Version 2016 geändert?
Ich hoffe, ihr könnt mir helfen.

aktuelle Version: Access 2016

Gruß
Fabian
Titel: Re: Control im Unterformular in VBA nicht verfügbar
Beitrag von: Beaker s.a. am April 26, 2021, 09:56:57
Hallo Fabian,
Vermutlich wird dir dieses (http://www.donkarl.com?FAQ4.2) helfen.

gruss ekkehard
Titel: Re: Control im Unterformular in VBA nicht verfügbar
Beitrag von: DF6GL am April 26, 2021, 09:58:13
Hallo,


Me![frm_tst_UF].Form![Kombi2].RowSource = SQL
Titel: Re: Control im Unterformular in VBA nicht verfügbar
Beitrag von: Beaker s.a. am April 26, 2021, 10:00:54
Uuups, sch... gefilterte Wahrnehmung.
Titel: Re: Control im Unterformular in VBA nicht verfügbar
Beitrag von: qaudtc am April 26, 2021, 11:13:03
Zitat von: DF6GL am April 26, 2021, 09:58:13Me![frm_tst_UF].Form![Kombi2].RowSource = SQL
Ja natürlich, blöder Schreibfehler, manchmal ist man einfach nur betriebsblind. Der LZF ist damit behoben, vielen Dank.
Aber genau das meine ich ja, wieso wird das Control beim Schreiben im VBA Editor nicht angezeigt? Dadurch werden die Methoden/Eigenschaften nicht aufgelistet und es passieren dann eben solche Sachen.

Woran liegt das? Oder ist das Just as Designed?
Titel: Re: Control im Unterformular in VBA nicht verfügbar
Beitrag von: ebs17 am April 26, 2021, 12:22:30
Der Bang-Operator (!) ist kein Mittel, um mit der IntelliSense zu schreiben.
Titel: Re: Control im Unterformular in VBA nicht verfügbar
Beitrag von: PhilS am April 26, 2021, 13:51:51
Zitat von: qaudtc am April 26, 2021, 11:13:03Aber genau das meine ich ja, wieso wird das Control beim Schreiben im VBA Editor nicht angezeigt?
1.) Wegen der verkürzten Schreibweise mit dem Bang(!)-Operator, der erst zur Laufzeit ausgewertet wird.
2.) Weil die Eigenschaft Form eines SubForm-Controls ein generisches Access.Form-Objekt zurückliefert und nicht dein konkretes Form mit deinen Steuerelementen.
Titel: Re: Control im Unterformular in VBA nicht verfügbar
Beitrag von: markus888 am April 26, 2021, 14:07:33
Zitat von: qaudtc am April 26, 2021, 11:13:03Oder ist das Just as Designed?

Den Grund hat der PhilS ja schon genannt.
Da ich das auch nicht mag, habe ich mir einen kleinen workaround überlegt, damit ich mit der Intellisense arbeiten kann.
Ich verwende eine Property, die mir eine typisierte Referenz liefert.

Property get SF() AS Form_MyFormName
    Set SF = Me.SubformControl.Form
End Property

Dann kannst du überall im Code mit der SF Property arbeiten.

  SF.Kombi2.RowSource = SQL

oder
  with SF
      .Kombi2.RowSource = SQL
  end with
Titel: Re: Control im Unterformular in VBA nicht verfügbar
Beitrag von: qaudtc am April 26, 2021, 14:44:54
Vielen Dank für die Erklärung, das leuchtet natürlich ein.
Das Problem wäre damit gelöst.

Super Tip mit der indirekten Zuweisung, den probiere ich gleich aus.

Wieder mal was gelernt :) Es lebe das Forum!

Gruß
Fabian