Juli 29, 2021, 07:15:12

Neuigkeiten:

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


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
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.


Beaker s.a.

--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

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.
Access DevTools - Find and Replace
Komfortables Suchen und Ersetzen in den Entwurfseigenschaften von Access-Objekten. In Abfragen, Formularen, Berichten und VBA-Code - Überall und rasend schnell!

markus888

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
10 Jahre Access

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