Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Ufo wird bereits beim Hingehen gespeichert

Begonnen von FlyingFlo, April 11, 2016, 22:58:06

⏪ vorheriges - nächstes ⏩

FlyingFlo

Hallo,

es existieren das Hafo "frmBudget" und das Ufo "frmBudget_sfrmBudgeteingabe", der Steuerelementname des Ufos im Hafo ist "sfrmBudgeteingabe". Die beiden Formulare sind über eine ProjektID verknüpft.
Im Hafo kann per Kombinationsfeld "cboMAAuswahl" ein Name ausgewählt werden, der dann automatisch auch in das Kombinationsfeld "cboMitarbeiterauswahl" des Ufos übernommen wird, der Code dazu:

Private Sub cboMAAuswahl_AfterUpdate()

    Me!sfrmBudgeteingabe!cboMitarbeiterauswahl = Me.cboMAAuswahl
   
End Sub


Das funktioniert soweit. Es wird also erwartungsgemäß der Mitarbeitername im Kombifeld des Ufos angezeigt.

Sobald ich jetzt aber in das Ufo (das noch weitere Felder enthält) klicke, wird im Moment des Klicks die Fehlermeldung angezeigt: "Sie müssen einen Wert in das Feld xxx eingeben." - Offensichtlich scheint Access also bereits den Datensatz speichern zu wollen. Das ist natürlich so nicht gewollt, weil der Nutzer zunächst weitere Angaben eingeben soll und der Datensatz erst beim Verlassen des Ufos gespeichert werden soll.

Woran liegt es, dass der Datensatz bereits beim Hingehen gespeichert wird?
Und habt ihr eine Idee für eine Abhilfe?

Danke und viele Grüße,
Florian

MzKlMu

Hallo,
wird der Mitarbeiter auch im Datensatz des Hafo gespeichert ?
Wenn ja warum ?
Wenn nein, sollte die Mitarbeiterauswahl ins Ufo.

Zeige mal ein Bild des Beziehungsfensters.
Gruß Klaus

FlyingFlo

Hallo Klaus,
in Wirklichkeit ist die Datenbank wesentlich komplizierter aufgebaut, ich habe das hier nur auf das wesentliche beschränkt. Daher hilft das Beziehungsfenster nicht weiter, aber ich erkläre mal das Prinzip:

Im Hafo wird ein Mitarbeiter ausgewählt, der ein bestimmtes Projekt leitet und im Ufo kann eine Budgetsumme zu diesem Projekt eingegeben werden und gleichzeitig wird gespeichert, welcher Mitarbeiter diese Summe eingegeben hat. Da es sich in der Regel um den Projektleiter selbst handelt, soll dieser aus Komfortgründen bereits voreingestellt sein. In einigen Fällen kann es aber auch vorkommen, dass nicht der Projektleiter selbst, sondern ein Kollege die Budgetsumme eingibt, dafür soll es dann möglich sein, die Mitarbeiterauswahl zu ändern.

LG


MaggieMay

Hallo,
ZitatSobald ich jetzt aber in das Ufo (das noch weitere Felder enthält) klicke
daraus könnte man schließen, dass HF und UF auf derselben Datenquelle basieren.
Die Frage nach den Datenquellen sollte also als erstes beantwortet werden.
Zitatin Wirklichkeit ist die Datenbank wesentlich komplizierter aufgebaut, [...]. Daher hilft das Beziehungsfenster nicht weiter
Niemand fragt hier nach dem Gesamtkonzept deiner DB. Ein Auszug aus dem Beziehungsfenster mit den zum aktuellen Problem relevanten Tabellen würde durchaus genügen.
Freundliche Grüße
MaggieMay

MzKlMu

Hallo,
Zitatder ein bestimmtes Projekt leitet und im Ufo kann eine Budgetsumme zu diesem Projekt eingegeben werden
wieso ist die Budgetsumme in einem Unterformular ?
Das wäre ja nur notwendig wenn es mehrere Budgetsummen zu einem Projekt gäbe, was aber nach Deiner Beschreibung nicht zutrifft.
Die Budgetsumme gehört daher in den Hauptdatensatz (Projekt) und zum demzufolge in das Hafo.
Gruß Klaus

FlyingFlo

Hallo,
entschuldigt, ich habe offensichtlich durch meine Vereinfachungen alles komplizierter gemacht.
Anbei der Originalauszug. Es ist in der Realität anders als oben dargestellt. Es geht auch nicht um Budgetsummen, sondern um eine Budgetampel, die anzeigt, ob das Budget im grünen Bereich liegt. Dieser Budgetstatus wird auch rückwirkend gespeichert, daher die eigene Tabelle mit 1:n-Beziehung und die Notwendigkeit eines Ufos.

Das Grundproblem bleibt aber: Beim Klicken ins Ufo wird offensichtlich versucht, den Status zu speichern, da dort im Kombifeld schon ein Mitarbeitername eingetragen ist.

Danke, lg

DF6GL

Hallo,

vermutlich wird damit :

ZitatDa es sich in der Regel um den Projektleiter selbst handelt, soll dieser aus Komfortgründen bereits voreingestellt sein.

eine MitarbeiterID an das gebundene Kombifeld "hart" zugewiesen, was bei einem neuen DS dessen Definition  zur Folge hat (d. h. der neue DS existiert dann dadurch) .

Weise die ID der Eigenschaft "Defaultwert" des Mitarbeiter-Kombis zu, damit der DS erst bei einer anderen Eingabe erzeugt wird.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MaggieMay

Wenn beim Klick in das UF etwas gespeichert wird, dann kann es sich nur um den Datensatz aus dem HF handelt, der dabei verlassen wird. Also wäre es interessant zu wissen, welche Datenquelle HF und UF haben. Nenne bitte die Tabellennamen bzw. zeige den SQL-Code der Abfrage.

Das Kombifeld zur Auswahl des Mitarbeiters im HF ist gebunden???

PS:
Der Vorschlag mit dem Standardwert dürfte das Problem wohl lösen.
Freundliche Grüße
MaggieMay

Beaker s.a.

Hallo Maggie,
ZitatDer Vorschlag mit dem Standardwert dürfte das Problem wohl lösen.
Aber nicht, wenn deine Vermutung eines gebundenen Kombis im HFo
zutrifft; - sorry Franz ;) (auch wenn die Idee gut ist).
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

DF6GL

Hallo,

ich denke aber schon ,  es war die Rede vom UFO  (tblBudget) und dort das Mitarbeiter-Auswahl-Kombi..
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Beaker s.a.

Hallo Franz,
Woher wissen wir, dass
Zitat"Sie müssen einen Wert in das Feld xxx eingeben." -
ein Feld des UFos ist?
Wenn Maggies Vermutung eines gebunden Kombis im HFo zutrifft, ist
"Feld xxx" nämlich ein Feld des HFos, welches dann beim Wechsel zum
UFo gespeichert werden will (und nicht kann). Das UFo wird IMO durch
die Zuweisung nur .Dirty, dürfte aber beim Hingehen keine Veranlassung
haben einen Speichervorgang auszulösen.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

DF6GL

Hallo,

soweit ich das sehe , geht es um das Feld lngMeldender in tblBudgetstatus, das mit dem "Standard"-Mitarbeiter des Projektes vorbesetzt wird (wie auch immer das genau gemacht ), und das auch eine andere Wahl des Mitarbeiters erlaubt. Wenn es sich um eine direkte Zuweisung an das Kombifeld handelt , wird bei einem neuen Record der Datensatz schon erzeugt.   Um das zu verhindern, habe ich die Nutzung des Standardwertes vorgeschlagen.

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Beaker s.a.

Hallo Franz,
Nichts gegen deine Lösung,- finde ich ja gut.
Aber
Zitatgeht es um das Feld lngMeldender in tblBudgetstatus
ist das auch, das Feld, dass die Fehlermeldung anzeigt?
Zitatwird bei einem neuen Record der Datensatz schon erzeugt
Schon klar, aber das löst IMO noch keine Speicherung des DS
aus. Ausser natürlich per VBA wird da was angestossen. Aber Code
gibt's nicht vom TS und eine Rückmeldung bezügl. des Kombis
auch nicht :(.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

DF6GL

Hallo,


:D

Zitataber das löst IMO noch keine Speicherung des DS
aus.

hab ich auch gar nicht behauptet..  "erzeugt" (im Form-Recordset) ist eben (noch) nicht (in der Tabelle)gespeichert...  :)


Wie auch immer, im Nebel herum zu stochern ist nicht prickelnd.   :'(
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

FlyingFlo

Danke für die vielen Antworten.

Es ging tatsächlich um das Feld "lngMeldender" im Ufo.
Dieses wurde gefüllt per

Private Sub cboMAAuswahl_AfterUpdate()

    Me!ufoBudgetstatus!cboMeldender = Me.cboMAAuswahl
   
End Sub


Der Tipp mit dem Standardwert hat das Problem gelöst, danke.

LG