Steuerelementinhalt per VBA

Hallo zusammen.
Ich habe ein Endlosformular in dem Artilkelgruppen angezeigt werden.
Nun möchte ich die Anzahl der Artikel in diesen Gruppen anzeigen.
Um die Funktionen kennenzulernen habe ich trivial angefangen und in jedem Feld „Anzahl“ die Gesamtzahl der Artikel ausgegeben mit:

Steuerelementinhalt: =DomAnzahl(„a_id“; „artikel“)

Hat auch funktioniert.
Nun wollte ich im nächsten Schritt diesen Code via VBA setzen.
Und da bin ich gescheitert.
Habe das im „Open_Form“-Event mit

Me!Anzahl.ControlSource = DCount(„a_id“, „artikel“) versucht.

Jetzt bekomme als Anzeige #Name?
Was mache ich falsch?

Liebe Grüße, Fredda

Hallo Fredda,

Ich habe ein Endlosformular in dem Artilkelgruppen angezeigt
werden.

Grundgedanke: ein Endlosformular sind ganz viele kleine Formulare untereinander

Steuerelementinhalt: =DomAnzahl(„a_id“; „artikel“)
Hat auch funktioniert.

richtig

Nun wollte ich im nächsten Schritt diesen Code via VBA setzen.
Und da bin ich gescheitert.
Habe das im „Open_Form“-Event mit

damit sprichst du das GANZE Formular an, mit allen kleinen „Formularen“

Me!Anzahl.ControlSource = DCount(„a_id“, „artikel“) versucht.

.ControlSource kannst du dir sparen, Me.Anzahl reicht völlig

Jetzt bekomme als Anzeige #Name?
Was mache ich falsch?

Denkfehler: auf dem Endlosformular sind hunderte von ME.Anzahl,
welchem davon willst du denn den Wert zuweisen?
Jede Zeile ist ein extra Wert und muss extra berechnet werden.

Global - über das Formular - kann man das nicht erreichen, dass ALLE Me.Anzahl mit einer Formel berechnet werden, das geht nur - wie du es schon richtig gemacht hast - pro FELD.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo,

so:

Me!Anzahl.ControlSource = „=DomAnzahl(“„a_id“";"„artikel“")"

In den Steuerlementinhalt muß ein String geschrieben werden, nicht das Ergebnis einer Berechnung/Funktion.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hmm - doof.

@Df6GL

Me!Anzahl.ControlSource = „=DomAnzahl(“„a_id“";"„artikel“")"

Funktioniert nicht, dann bekomme ich nen Laufzeitfehler „Der Ausdruck ist syntaktisch falsch“

@Netwolf

Grundgedanke: ein Endlosformular sind ganz viele kleine
Formulare untereinander

Gut zu wissen.

Global - über das Formular - kann man das nicht erreichen,
dass ALLE Me.Anzahl mit einer Formel berechnet werden, das
geht nur - wie du es schon richtig gemacht hast - pro FELD.

Jetzt habe ich keinen Plan, wei ich das von mir gewollte erreichen soll, werde nochmal in mich gehen und mich dann gegebenenfalls nochmal mit konkreten Fragen hier im Forum melden.
Vielen Dank jedenfalls für die schnellen Antworten.
Liebe Grüße, Fredda

Hallo,

Me![Anzahl].ControlSource = „=DCount(“„a_id“","„artikel“")"

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hmm, noch mal von vorne :smile:

Me!Anzahl.ControlSource = „=DomAnzahl(“„a_id“";"„artikel“")"

Funktioniert nicht, dann bekomme ich nen Laufzeitfehler „Der
Ausdruck ist syntaktisch falsch“

in VBA:
Me!Anzahl = Dcount(„a_id“,„artikel“)

da waren nur zu viele Anführungsstriche und in VBA darfst du nur die englisch-sprachigen Funktionen benutzen! Auch ist als Trennzeichen in VBA das Komma notwendig!

Jetzt habe ich keinen Plan, wei ich das von mir gewollte
erreichen soll, werde nochmal in mich gehen und mich dann
gegebenenfalls nochmal mit konkreten Fragen hier im Forum
melden.

du hattest das schon ganz richtig angefangen:
Feld „Anzahl“ -> Steuerelementinhalt:
= Dcount(„a_id“;„artikel“;"[a_ID]= " & ME.a_id)

dir fehlte nur die WHEN Bedingung der DCOUNT Funktion, damit du auch nur die Anzahl aller Artikel mit der entsprechenden A_ID angezeigt bekommst.

d.h. du brauchst nichts in VBA programmieren!

Was du machen könntest, wäre diese Formel in die Abfrage deines Formulares (Datenherkunft) einzufügen.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo Ihr zwei!
Also, erstmal kann ich berichten,
dass ich gestern abend nach meinem Posting noch Erfolg hatte.
Ich habe jetzt eine entsprechende Abfrage erzeugt, auf die dann mein DomWert im Steuerelementinhalt zugreift. Funktioniert blendent.
Habe aber wegen des gewünschten Feedbacks eben noch das folgende ausprobiert:

Me![Anzahl].ControlSource = „=DCount(“„a_id“","„artikel“")"

Funktioniert auch!
Wobei ich dann da mit meinem Konstrukt wieder Probleme bekam (wahrscheinlich wieder irgendein Syntax-Problem).
Aber da das andere ja läuft ist das nicht kriegsentscheident.
Es sei denn es hätte irgendeinen performanten Vorteil nicht auf eine Abfrage sondern per VBA direkt auf die Tabellen zu gehen.
Da habe ich bisher halt noch gar keinen Schimmer.
Ansonsten Dank Euch beiden für die schnelle und erfolgreiche Hilfe!
Liebe Grüße, Fredda