Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Abfrage - Funktion





Frage

Ich habe ein großes Problem: Ich muss in einer Abfrage folgende Dauer der Wartungen berechnen: (365/Frequenz*Dauer). Bei gleichen Werkzeugen soll die Dauer allerdings folgendermaßen berechnet werden: (365/Frequenz*Dauer)-(365/Frequenz(Werkzeug danach)*Dauer) Wie bekomme ich hin in einer Funktion in einer Abfrage zu überprüfen, wie der Werkzeugname im Datensatz davor hieß?????

Antwort 1 von Teddy7

Du mußt im Modul1 eine globale function anlegen.

Public function XRECH(Werkzeug as string, Dauer as double, Frequenz as double) as double
..........
XRECH = ..............
end function


In der Abfrage kannst Du diese function dann ansprechen:
XErg: XRECH(Werkzeug; Dauer; Frequenz)


Gruß
Teddy

Antwort 2 von SchwarzerEngel

Das habe ich getan und das funktioniert auch alles ohne probleme.

Mein Problem:
Der Zugriff auf den Datensatz davor, um zu sehen, ob die neue Wartung am gleichen Werkzeug passiert oder nicht.

Antwort 3 von Teddy7

Das kann man machen indem man z.B. in der Function eine globale Variable füttert.

Public XLAST as double
(auch im Modul1 definieren)

Gruß
Teddy

Antwort 4 von OmaDuck

Hallo,
Du kommst um eine sequentielle programmierung wohl nicht herum. Die Idee könnte sein:

dim fzaehler, fwerkzeug
fzaehler=0
fwerkzeug = ´ ´
schleife über alle sätze
satz holen
if werkzeug = fwerkzeug then
fzaehler=fzaehler+1
else
fzaehler=0
end if
fwerkzeug = werkzeug
fzaehler als zusätzliches feld in den satz schreiben (update satz set zaehler = fzaehler)
dann hast Du eine Tabelle in der alle zaehlerwerte >0 bedeuten,dass davor schon der gleiche werkzeugname war und Du kannst in der Abfrage entscheiden welche der beiden functions Du brauchst.

Gruß
OmaDuck

Antwort 5 von SchwarzerEngel

Danke, das letzte klingt schon wirklich gut.
Leider weiß ich noch nicht richtig, wie ich das machen muss.

Kannst du das bitte nochmal ein bißchen ausführlicher schreiben mit dem Satz holen??

Tabelle: Wartungsnr, Werkzeugname, Frequenz (1-tägig, 2-tägig, ...), Dauer

Ziel: Stundenanzahl eines Werkzeuges für Wartung!
Dabei folgende Rechnung, wenn Werkzeug gleich dem davor:
(365/Frequenz*Dauer)-(365/Frequenz von dem davor*Dauer)

Antwort 6 von SchwarzerEngel

Jetzt hab ich es.
Er bringt auch im Debug-Fenster die richtigen Werte, aber wenn ich das Ergebnis dann nicht dem Debug.Print sondern der Funktion (also Abfrage) zuordne, schreibt er in jeden Datensatz das gleiche Ergebnis. :-(

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: