[gelöst]Einen Wert in Formular errechnen und anzeigen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

hk3003
**
Beiträge: 36
Registriert: Mo, 31.12.2007 14:19

[gelöst]Einen Wert in Formular errechnen und anzeigen

Beitrag von hk3003 »

Hallo Forum,
ich möchte in einem Unterformular einen Tabellensatz erstellen wo ich die Felder MENGE(INTEGER) und KURS(DECIMAL) eingebe und beim Verlassen des KURS-Feldes den Wert MENGE * KURS berechnen und im im ungebundene Feld WERT(DECIMAL) anzeigen möchte. Beim Aufruf des Macros bekomme ich folgende Fehlermeldung: "Basic-Laufzeitfehler. Falscher Wert für Eigenschaft." Was mache ich falsch?

Code: Alles auswählen

Sub WertErrechnen(oEvent AS OBJECT)
	DIM oForm AS OBJECT
	DIM dWert AS DOUBLE
	DIM dMenge AS INTEGER
	DIM dKurs AS DOUBLE
	
	oForm = oEvent.Source.Model.Parent
	dMenge = oForm.getByName("Menge")	<-- Fehlerzeile
	dKurs = oForm.getByName("Wert")	
	oForm.getByName("Wert") = dMenge * dKurs
	 
End Sub
Zuletzt geändert von hk3003 am So, 26.02.2023 09:40, insgesamt 1-mal geändert.
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Einen Wert in Formular errechnen und anzeigen

Beitrag von RobertG »

Code: Alles auswählen

dMenge = oForm.getByName("Menge").CurrentValue
Du willst doch nicht den Zugriff auf das Eingabefeld mit allen möglichen Eigenschaften sondern darauf, was da für ein Wert drin steht. Das gilt natürlich auch für die nachfolgenden Elemente.

Code: Alles auswählen

oFeldMenge = oForm.getByName("Menge")
Das wäre also lediglich das Objekt mit allen möglichen Eigenschaften und Methoden.
hk3003
**
Beiträge: 36
Registriert: Mo, 31.12.2007 14:19

Re: Einen Wert in Formular errechnen und anzeigen

Beitrag von hk3003 »

Danke für die Antwort!
Ich habe nun ein Macro welches "intern" funktioniert. Das heißt, im Feld "oWert" (Macro) steht der berechnete Wert, aber er wird im Formular nicht angezeigt. Auch der Standardwert den ich für dieses Feld in den "Eigenschaften: Numerisches Feld" eingegeben habe wird dort nicht angezeigt. Leider kann ich den Screenshot der Eigenschaften nicht beilegen WIE? nicht Vielleicht ist da was falsch. Dieses Feld ist in der zugrunde liegenden Tabelle nicht enthalten.

Code: Alles auswählen

Sub WertErrechnen(oEvent AS OBJECT)
	DIM oForm AS OBJECT
	DIM oWert AS OBJECT
	DIM oMenge AS  OBJECT
	DIM oKurs AS  OBJECT
	
	oForm = oEvent.Source.Model.Parent
	oMenge = oForm.getByName("Menge")	
'	dKurs = oForm.getByName("Kurs").EffectiveValue
	oKurs = oForm.getByName("Kurs")	
	oWert = oForm.getByName("Wert")
	oWert.Value = oMenge.CurrentValue * oKurs.CurrentValue

End Sub
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Einen Wert in Formular errechnen und anzeigen

Beitrag von RobertG »

Wenn es sich dabei um ein Feld handelt, das gar nicht mit der zugrundeliegenden Datenquelle verbunden ist, dann hilft vielleicht

Code: Alles auswählen

oWert.Text  = oMenge.CurrentValue * oKurs.CurrentValue
In was für einem Formularfeld versuchst Du denn den "Wert" anzuzeigen?
hk3003
**
Beiträge: 36
Registriert: Mo, 31.12.2007 14:19

Re: Einen Wert in Formular errechnen und anzeigen

Beitrag von hk3003 »

Ein numerisches Feld.
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Einen Wert in Formular errechnen und anzeigen

Beitrag von RobertG »

Dann mach daraus ein Textfeld. Soll doch sowieso nur etwas anzeigen.
hk3003
**
Beiträge: 36
Registriert: Mo, 31.12.2007 14:19

Re: Einen Wert in Formular errechnen und anzeigen

Beitrag von hk3003 »

Auch als Textfeld wird nichts angezeigt. Ich habe bei der Felddefinition im Formular einen Standardwert angegeben, auch dieser wird nicht angezeigt. Daher vermute ich, dass es bereits bei der Definition des Feldes ein Problem gibt.
Wenn ich die Felder mit dem Tabulator weitergehe und zum Feld "Wert" komme wird auch der Cursor nicht im Feld angezeigt. Es kann daher auch nichts eingegeben werden.
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Einen Wert in Formular errechnen und anzeigen

Beitrag von F3K Total »

Moin,
ich verstehe nicht, wozu du ein Makro benötigst.
Den Wert kannst du einfach in einer Abfrage berechnen:
Q.png
Q.png (17.66 KiB) 2276 mal betrachtet
...die dann die Datengrundlage für das Formular ist:
F.png
F.png (9.18 KiB) 2276 mal betrachtet
Nur darauf achten, dass die berechneten Felder "Wert" die EIgenschaft "Eingabe erforderlich = Nein" haben.
E.png
E.png (12.32 KiB) 2276 mal betrachtet
Beispiel anbei.

Gruß R
Dateianhänge
WERT_MENGE.odb
(12.55 KiB) 72-mal heruntergeladen
hk3003
**
Beiträge: 36
Registriert: Mo, 31.12.2007 14:19

Re: Einen Wert in Formular errechnen und anzeigen

Beitrag von hk3003 »

Ich kann keine Abfrage machen, weil ich die Daten ja erst im Formular erfasse,
lg heinz

PS: Kannst du mir sagen wie du die Screenshots einbinden tust?
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Einen Wert in Formular errechnen und anzeigen

Beitrag von F3K Total »

Moin,
wo erfaßt du denn die Daten? In Base? In einer Tabelle?
Die Abfrage basiert auf der Tabelle, auch in meinem Formular werden die Daten erfasst.
hk3003 hat geschrieben: Sa, 25.02.2023 11:17 Ich kann keine Abfrage machen, weil ich die Daten ja erst im Formular erfasse,
Zum Einbinden von Screenshot, erstmal als Dateianhang hochladen, dann findest du bei der hochgeladenen Datei einen Knopf "Im Beitrag anzeigen"
Gruß R
hk3003
**
Beiträge: 36
Registriert: Mo, 31.12.2007 14:19

Re: Einen Wert in Formular errechnen und anzeigen

Beitrag von hk3003 »

Ich habe mir deine odb angesehen. Nun ist mir einiges klarer. Werde es nun mit einer Abfrage probieren,
vielen Dank einstweilen, heinz
hk3003
**
Beiträge: 36
Registriert: Mo, 31.12.2007 14:19

Re: Einen Wert in Formular errechnen und anzeigen

Beitrag von hk3003 »

Ich habe nun über eine Abfrage berechnet und diese Abfrage als Basis für das Unterformular herangezogen. Das funktioniert nun gut. Aber nun kann keine Transaktion erfasst oder geändert werden. Woran kann das liegen?
Ich habe die odb als Dateianhang beigelegt.
TransaktionenErfassen.png
TransaktionenErfassen.png (83.83 KiB) 2241 mal betrachtet
Dateianhänge
WP-Verwaltung.odb
(57.19 KiB) 75-mal heruntergeladen
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Einen Wert in Formular errechnen und anzeigen

Beitrag von F3K Total »

Moin,
du hast deine Abfrage aus zwei Tabellen zusammengebaut. Damit ist sie erstmal nicht beschreibbar.
Es ist zwar möglich, indem man alle beteiligten PRIMÄRSCHLÜSSEL aller beteiligten Tabellen in die Abfrage aufnimmt, führt aber erfahrungsgemäß vor allem in Unterformularen zu Problemen.
Wenn sich die Abfrage nur auf Tabelle T_Transaktionen bezieht, gibt es keine Probleme. So sollte die Abfrage lauten:

Code: Alles auswählen

SELECT
    "ID",
    "Empf",
    "Börse",
    "Datum",
    "Aktion",
    "Status",
    "Menge",
    "Kurs",
    "Menge" * "Kurs" AS "Wert",
    "Gebühren",
    "KEST",
    "T_Stamm_ID"
FROM
    "T_Transaktionen"
Gruß R
hk3003
**
Beiträge: 36
Registriert: Mo, 31.12.2007 14:19

Re: Einen Wert in Formular errechnen und anzeigen

Beitrag von hk3003 »

Ja, jetzt funktionierts!
Herzlichen Dank für die Hilfe,
lg heinz
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: [gelöst]Einen Wert in Formular errechnen und anzeigen

Beitrag von F3K Total »

Moin,
kleiner Tipp am Rande, wenn du gerne die Bezeichnung aus der Tabelle T_Stamm im UNterformular angezeigt bekommen möchtest, geht diese Abfrage, die eine korrelierende Unterabfrage enthält:

Code: Alles auswählen

SELECT "ID",
    "Empf",
    "Börse",
    "Datum",
    "Aktion",
    "Status",
    "Menge",
    "Kurs",
    "Menge" * "Kurs" AS "Wert",
    "Gebühren",
    "KEST",
    "T_Stamm_ID",
    (SELECT "Bezeichnung" FROM "T_Stamm" WHERE "ID" = "T_Stamm_ID") AS "Bezeichnung"
FROM
    "T_Transaktionen"
Gruß R
Antworten