Seite 1 von 1

Textfeld Funktionsaufruf zuweisen

BeitragVerfasst: 02. Sep 2021, 08:41
von ClausM
Guten Morgen,

ich habe ein Problem bei der Zuweisung einer Formel/Funktionsaufruf innerhalb eines Berichts.

Weiße ich dem Textfeld über den Ausdruckseditor folgende Formel zu, ist alles in Ordnung.
Code: Alles auswählen
=Nz(DomSumme("[LK_UPosMenge]";"tbl_Lieferkontingent";"[LK_ANr] = [P_ANr] AND [LK_PNr] = [P_PNr]");0)


Jetzt möchte ich der Textbox unter VBA die folgende Formel zuweisen.
Code: Alles auswählen
  .ControlSource = "= myDSum(""LK_UPosMenge"", """ & GCstrTAB_Lieferkontingent & """, ""LK_ANr = """ & Nz(P_ANr, 0) & ")"


Hier kommt es zu der Fehlermeldung
2465: Produktions-Datenbank kann das in Ihrem Ausdruck angesprochene Feld 'P_ANr' nicht finden.


Ich habe den Eindruck, dass es an der Setzung der Anführungszeichen liegt.
Aber ich habe jetzt schon Stunden damit verbracht alle möglichen Kombinationen zu testen, immer ohne Erfolg.

Hat jemand von euch eine Idee?

LG
Claus

Re: Textfeld Funktionsaufruf zuweisen

BeitragVerfasst: 02. Sep 2021, 09:30
von uwms
...denke es sollte so lauten, wenn LK_ANR und P_ANR Felder der gleichen Tabelle sind:

Code: Alles auswählen
 .ControlSource = "= myDSum(""LK_UPosMenge"", """ & GCstrTAB_Lieferkontingent & """, ""LK_ANr = Nz(P_ANr, 0)"")"


Grüße
Uwe

Re: Textfeld Funktionsaufruf zuweisen

BeitragVerfasst: 02. Sep 2021, 09:31
von Bitsqueezer
Hallo,

vor der letzten schließenden Klammer im String fehlt auf jeden Fall noch ein "".

Aber am einfachsten setzt Du einen Breakpoint auf die Zeile und gibst den gesamten String, den Du der ControlSource zuweisen willst, im Direktfenster mal aus und dann solltest Du sehen, wo das Problem liegt.

In einem WHERE-Filterstring kannst Du statt Anführungszeichen auch einfach Hochkomma verwenden, dann wird es einfacher.

Gruß

Christian

Re: Textfeld Funktionsaufruf zuweisen

BeitragVerfasst: 02. Sep 2021, 10:14
von ClausM
Code: Alles auswählen
 ""LK_ANr = Nz(P_ANr, 0)"")"

Wenn ich die Funktion wie oben beschrieben aufrufe, dann wird auch genau die Zeichenfolge an die Funktion übergeben, d. h. die Zeichenfolge "Nz(P_ANr, 0)" wird nicht durch die Auftragsnummer ersetzt.

Aber am einfachsten setzt Du einen Breakpoint auf die Zeile und gibst den gesamten String, den Du der ControlSource zuweisen willst, im Direktfenster mal aus und dann solltest Du sehen, wo das Problem liegt.

Probiere ich schon seit gestern, aber entweder wird die Zeichenfolge nicht genommen oder die Auftragsnummer, bzw. das Feld wird nicht gefunden.

Re: Textfeld Funktionsaufruf zuweisen

BeitragVerfasst: 02. Sep 2021, 11:01
von ClausM
Puh, geschafft!
Code: Alles auswählen
  .ControlSource = "= myDSum(""LK_UPosMenge"", """ & GCstrTAB_Lieferkontingent & """, ""LK_ANr = "" & Nz(P_ANr, 0) & "" AND LK_PNr = "" & Nz(P_PNr, 0) & "" AND LK_Aktiv = True"")"