Neuigkeiten:

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

Mobiles Hauptmenü

Verwendung einer Funktion (Modul) in einem Berechneten Feld möglich?

Begonnen von J.D, Mai 04, 2024, 11:36:31

⏪ vorheriges - nächstes ⏩

J.D

Hi Forum,

da sei ich mal wider...

ich habe eine funktion (Soory, es handelt sich um ein Modul) = AdjustedValue(Nz([Me!Stunden])) diese gibt mir im endlos die Anzahl der überstunden aus, das möchte ich aber direkt in die Datenbank haben...

Wenn ich dieses jedoch als berechnetes Feld angebe, bekomme ich die meldung das die Expression nicht verwendet werden kann...

Gibt es da eine möglichkeit?
Das Modul hat den inhalt
    If value < 11 Then
        AdjustedValue = value - value
    Else
        AdjustedValue = value - 10
    End If

MFG J.D.
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2

MzKlMu

Hallo,
Zitat(Soory, es handelt sich um ein Modul)
Nein, es ist kein Modul, es ist eine Funktion. Ein Modul selbst kann auch nicht direkt Code enthalten. Ein Modul ist ein Container für Funktionen und Prozeduren. Und nur diese enthalten den eigentlichen Code. Ein Modul darf auch nicht so benannt werden wie eine der Funktionen/Prozeduren die im Modul enthalten sind. Ein Modul kann auch nicht ausgeführt werden, nur die darin enthaltenen Funktionen und Prozeduren.
Zitatdas möchte ich aber direkt in die Datenbank haben...
Das ist überflüssig und widerspricht den Grundregeln einer Datenbank. Berechnet wird (wenn benötigt) in einer Abfrage, das ist gleichwertig zu einer Tabelle.

Was willst Du denn mit diesem Ausdruck:
AdjustedValue = value - valueDas gibt ja immer 0.

Den Namen Value solltest Du vermeiden, das ist ein reserviertes Wort.

Das gezeigte unvollständige Codeschnippsel einer Funktion ist auch nicht hilfreich.
Gruß Klaus

ebs17

In Fortführung: Der gezeigte Ausdruck ist innerhalb eines berechneten Feldes in einer Abfrage ganz einfach.
SELECT
   *,
   IIf(value < 11, 0, value - 10) AS AdjustedValue
FROM
   TableX
Dabei bedient man sich ausschließlich der SQL-Syntax und braucht keinen Ausflug in VBA.
Mit freundlichem Glück Auf!

Eberhard

J.D

Zitat von: MzKlMu am Mai 04, 2024, 11:58:47...
Das gezeigte unvollständige Codeschnippsel einer Funktion ist auch nicht hilfreich.

naja, doch schon ;)
Function AdjustedValue(value As Variant) As Variant
    If value < 11 Then
        AdjustedValue = value - value
    Else
        AdjustedValue = value - 10
    End If
End Function

MFG J.D.
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2

J.D

Zitat von: ebs17 am Mai 04, 2024, 13:09:21In Fortführung: Der gezeigte Ausdruck ist innerhalb eines berechneten Feldes in einer Abfrage ganz einfach.
SELECT
   *,
   IIf(value < 11, 0, value - 10) AS AdjustedValue
FROM
   TableX
Dabei bedient man sich ausschließlich der SQL-Syntax und braucht keinen Ausflug in VBA.

da kommt dann Expression Inkorrekt, value muss ja den wert haben?
Das Feld heisst Stunden aus dem ich es berechnen möchte...

MFG J.D.
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2

J.D

Sooooo,

ich habe irgendwie die Stunden in die DB bekommen und nun kann ich Sie auch durch ein weiteres Feld berechnen, also scheint das erst mal so weit I.O.


MFG J.D.
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2