PDA

Vollständige Version anzeigen : erechnete Werte eines Formulars in einem anderen Formular anzeigen


M71
18.02.2003, 12:14
Hallo!

Ich versuche schon seit zwei Tagen einen errechneten Wert von einem Formular in ein anderes mit anzeigen zu lassen.

Habe eine DB, die das Formular Zahlungseingänge enthält.
Dort habe ich eine Restsumme als Textfeld. Nun möchte ich es in einem anderen Formular (offene Rechnungen) ebenfalls in einem Textfeld, das ich Rest genannt habe, mit anzeigen lassen.
Leider funktioniert es nicht mit dem Ausdrucksgenerator.
Wie mache ich das dann?
Vieleicht kann mir ja jemand einen Tip geben?!

Danke schon mal im Voraus!

MfG
M71

A.S.
18.02.2003, 12:18
Zunächst einmal sollten deutsche Umlaute wie ä, ö und ü nicht in den Objektbezeichnern einer Access-Datenbank auftauchen, da sie Dir unerwartete Probleme bereiten können ;)

Benenne das Formular "Zahlungseingänge" als nach "Zahlungseingaenge" um.

Als Eigenschaft "Steuerelementinhalt" des Feldes "Rest", in welchem Du den Restwert aus dem Formular "Zahlungseingaenge" darstellen möchtest gibst Du

=Formulare!Zahlungseingaenge!Restsumme

ein, sofern Du das Feld auf dem Formular "Zahlungseingaenge" als "Restsumme" (siehe in den Eigenschaften des entsprechenden Controls im Registerreiter "Andere" die .Name-Eigenschaft) benannt hast.

Gruß

Arno

Smaug
18.02.2003, 13:26
wenn Du den Rest-Wert in einer Tabelle gespeichert hast - sieht danach aus weil es in der Datenherkunft des Formulars ist - kannst Du auch die Domänenfunktion DLookup (VBA) oder DomWert verwenden. Mach dazu einfach in Deinem Formular ein ungebundenes Textfeld und nimm die Domänenfunktion als Steuerelementinhalt.
:angel:

M71
19.02.2003, 20:37
Hallo Arno!

Erstmal Danke für Deine Antwort. Habe es ausprobiert, funktioniert aber nicht. Es erscheint im Textfeld: #Name. Habe aber schon nachgeschaut, alle Felder heißen so, wie ich es im Steuerelementeinhalt reingeschrieben habe.

Hast Du vielleicht noch eine Idee, woran es leigen könnte?

MfG

M71

M71
19.02.2003, 20:59
Hallo Smaug!

Auch Dir danke ich für Deine Antwort.
Die Restsumme ist nicht in einer Tabelle gespeichert, sondern wird im Formular berechnet und auch nur da ist sie bisher zu sehen.

Ich hätte sie ja gern gespeichert, wußte aber nicht wie es machen sollte, weil mir ein Wert in der Abfrage fehlte und ich auch nicht wußte wie ich es berechnen lassen kann. Wußte nur wie es im Unterformular funktioniert.

Wollte in der Abfrage die Summe aus den Zahlungseingängen je AnmeldeNr bilden und hatte eingegeben (in Abfrage)
Gesamt:Summe([Zahlungseingangsbetra])
und könnte dann Restsumme:[Endpreis]-[Gesamt], so wie ich auch im Formular gemacht habe.

Wenn dies funktioniert hätte, dann hätte ich die Werte ja auch in einer Tabelle stehen!

Du merkst sicherlich, bin noch ein ziemlicher Anfänger, was Access betrifft.
Wie Du Dir jetzt sicherlich vorstellen kannst, kann ich mit Domänenfunktion DLookup (VBA) oder DomWert nichts anfangen.

Und weil ich nicht weiß wie ich es über die Abfrage realisieren soll, wollte ich die Restsumme aus den einen Formular (in der sie berechnet worden ist in das andere Formular offene Rechnungen reinholen.

Vielleicht kannst Du mir ja sagen, wie ich das mit der Abfrage noch machen kann???


Danke schon einmal im Voraus

MfG
M71

Wolfgang Biedermann
19.02.2003, 21:30
Hallo M71,

das, was Arno geschrieben hat, funktioniert schon, aber Du mußt BEIDE Formulare geöffnet haben bzw. das zweite Formular NACH dem ersten öffnen, wobei das erste geöffnet bleiben muß.

Nouba
19.02.2003, 21:38
Hallo M71,

alle Felder heißen so, wie ich es im Steuerelementeinhalt reingeschrieben habe

Die Steuerelemente sollten so angesprochen werden, wie es in den Eigenschaften <b>Name </b> steht. Also so, wie es Arno beschrieben hat. Und das funktiert auch. Verwendest Du keine deutsche Access-Version, ersetze <i>Formulare</i> durch <i>Forms</i>.

in die Eigenschaft <i>Steuerelementinhalt</i> des Steuerelements der zweiten Form gehört:
=Forms!NameDesErstenForms!NameDesSteuerelentsInErsterForm

Das Abspeichern von berechneten Werten ist unnötig, da die Berechnung jederzeit wiederholbar ist und führt unter Umständen zu falschen Ergebnissen, wenn Feldwerte, die an der Berechnung teilhaben, geändert werden.

M71
19.02.2003, 22:13
Hallo Nouba und Wolfgang!


Danke auch für Eure Hilfe. Jetzt funktionierts. Habe immer den Fehler gemacht, daß ich Zahlungseingaenge geschlossen habe und dann offene Rechnungen geöffnet habe und dann erscheint #Name.

Geht es vielleicht auch anders zu lösen, daß wenn ich Zahlungseingaenge geschlossen habe und mir nur die offenen Rechnungen ansehen möchte, die Restsumme erscheint, also nicht #Name????


Noch mal Danke an alle Helfenden!

MfG
M71

Nouba
19.02.2003, 22:20
Hallo M71,

dazu kann die langsame, in Formularen aber meist noch zu ertragende, Funktion <i>DomSumme/DSum</i> verwendet werden, die auch in der OL-Hilfe beschrieben ist.

Smaug
20.02.2003, 07:33
Guten Morgen,
freut mich dass es nun klappt. Für den Fall dass Du doch mal berechnete Felder in einer Tabelle speichern möchtest - was man aber aus bereits erwähnten Gründen vermeiden sollte (höchstens wenn es um ein Archiv geht; z.B. Rechnungs-Summen speichern wo sich die MwSt nachträglich ändern könnte aber Du die Abrechnung bereits gemacht hast) - kannst Du in Deiner Tabelle ein zusätzliches Feld anlegen und ein ungebundenes Textfeld mit Deiner Berechnung ( z.B. = Summe XY) als Steuerelementinhalt diesem Tabellenfeld zuordnen. Hab Dir ein kleines Beispiel aus einem Office-Forum als Anhang).
Ansonsten hab ich ganz gute Erfahrungen mit der DomWert-Funktion (als zusätzliches ungebundenes Textfeld im Formular - ohne Speicherung in einer Tabelle) gemacht - dazu müssen aber in Deinem Fall beide Formulare offen sein!
Für das restliche Problem käme vielleicht doch ein zusätzliches Feld "Rechnung abgeschlossen" als Ja-Nein-Feld in der Tabelle in Betracht, darauf könnte dann eine Abfrage basieren die nur noch alle Rechnungsposten zeigt die noch nicht abgeschlossen sind (also false). Dann müsste das eigentlich nicht benötigte Formular auch nicht offen sein. :angel:
Gruß Smaug

M71
20.02.2003, 20:11
Hallo Smaug!

Danke für Deine Mühe!!!!!
Komme leider nicht an die DB ran, erscheint immer keine Benutzerberechtigung. Gibt es da ´ne Möglichkeit, muß ich da irgendetwas bei mir einstellen. Habe win 98 ,Access 2000.

Für Deine anderen Tips danke ich dir auch, habe ich gleich bei mir abgespeichert.

MfG
m71

M71
20.02.2003, 20:14
Hallo Nouba!

Auch Dir Danke. Werde es mal mit Deinem Tip auch ausprobieren.

Melde mich dann wieder.

mfg
m71

Smaug
24.02.2003, 07:40
Hallo,
ich verstehe auch nicht warum Du nicht an die DB rankommst. Es ist eine Access-97-Version ohne Benutzerschutz. Normalerweise solltest Du höchstens beim Öffnen in die aktuelle Version konvertieren müssen. Ansonsten versuch Doch mal die Datenbak im Exklusiv-Modus zu öffnen.
Gruß :angel:

M71
24.02.2003, 09:00
Hallo Smaug!

Danke für Deine Bemühungen, funktioniert aber auch nicht im Exklusiv-Modus!

MfG
M71

Steve1974
24.02.2003, 09:22
Hallo !

@ Smaug

Kann es u.U. sein, dass Du dem Admin Standardaccount Berechtigungen entzogen hast ?

Wenn Du die DB bei Dir öffnest, musst Du dích erst mit Benutzernamen / pw anmelden ?

Wenn ja, dann solltest Du die Arbeitsgruppendatei, sowie benutzername und pw mitliefern, oder besser dem Admin - zumindest zum
Weitergeben - wieder alle Berechtigungen erteilen.

Gruß,

Steve.

Smaug
24.02.2003, 11:45
wir haben hier zwar NT in der Firma aber zuhause habe ich mit mdb´s nie Probleme dieser Art; werde also nie nach PW oder so gefragt. Vielleicht sollte ich die Datei am besten von Zuhause aus nochmal ins Forum stellen.
Gruß :angel: