Neuigkeiten:

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

Mobiles Hauptmenü

Control im Unterformular in VBA nicht verfügbar

Begonnen von qaudtc, April 26, 2021, 09:52:34

⏪ vorheriges - nächstes ⏩

qaudtc

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

Beaker s.a.

Hallo Fabian,
Vermutlich wird dir dieses helfen.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)


Beaker s.a.

Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

qaudtc

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?

ebs17

Der Bang-Operator (!) ist kein Mittel, um mit der IntelliSense zu schreiben.
Mit freundlichem Glück Auf!

Eberhard

PhilS

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.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

markusxy

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

qaudtc

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