Neuigkeiten:

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

Mobiles Hauptmenü

Übernahme eines Wertes im Formular

Begonnen von Banyan, Januar 25, 2024, 12:17:15

⏪ vorheriges - nächstes ⏩

MzKlMu

#15
Hallo,
ZitatDas ist Vorgabe, da es sich auf den Zeitraum bezieht für welchen die Unterlage zugeordnet werden muss.
Für einen zeitraum ist doch ein Datum viel besser geeignet. Aus eien Datum lässt sich das Jahr, der Monat undd as Quartal problemlos ableiten.

Übrigens, der Monat ist eine Zahl, da hat ein Format (00) nichts zu suchen.
Wenn Du nach 01 suchen würdest, würde der Monat 1 nicht gefunden werden.

Zitatdass ein Mandant mit mehreren Unterlagen gelistet werden muss
Und wie willst Du das jetzt machen ?

ZitatLeider bin ich noch keinen Schritt weiter aus meiner ursprünglichen Frage,
Es macht auch absolut keinen Sinn zum jetzigen Zeitpunkt diese Frage zu beantworten. Erst muss die Tabellenstruktur klar sein, dann kann man mal über Formulare und eine Bedienoberfläche nachdenken.
Gruß Klaus

Banyan


ZitatFür einen zeitraum ist doch ein Datum viel besser geeignet. Aus eien Datum lässt sich das Jahr, der Monat undd as Quartal problemlos ableiten.
Es wird aber so abgelegt in deren System, was soll ich diskutieren...

ZitatÜbrigens, der Monat ist eine Zahl, da hat ein Format (00) nichts zu suchen.
Wenn Du nach 01 suchen würdest, würde der Monat 1 nicht gefunden werden.
OK, dann halt Text mt den3 ersten Buchstaben....?

Zitatdass ein Mandant mit mehreren Unterlagen gelistet werden muss
Und wie willst Du das jetzt machen ?
Den Primärschlüssel bei dem Mandanten herausnehmen und Mehrfacheinträge zulassen...?

MzKlMu

Hallo,
OK, das mit Monat, Quartal und Jahr lassen wir dann. Die Tabelle dazu wird aber anders aufgebaut. Und bitte keine Wertelisten verwenden.
ZitatOK, dann halt Text mt den3 ersten Buchstaben....?
Nein, kein Text, eine einfache Zahl von 1-12.

Du kriegst später einen Vorschlag.
Gruß Klaus

MzKlMu

#18
Hallo,
anbei mein Vorschlag.
Schaue Dir die Beziehungen an.
Die Tabelle mit den Monaten, Quartal und Jahr habe ich einfacher aufgebaut. Für Kombis dann die entsprechenden Abfragen verwenden.
Bitte verwende auf keinen Falle Wertelisten für Kombifelder. Das ist viel zu unflexibel. Eine weitere Name würde immer eine Änderung des Entwurfs (Tabelle oder Formular) erfordern. Die Namen der "AusgeführVon" Personen ist in die Sachbearbeitertabelle aufgenommen. Zur Unterscheidung gibt es dort ein Feld (Sb oder Sek).
Die Kombifelder sind umgestellt auf den jeweiligen Fremdschlüssel. Über die Spaltenzahl und Spaltenbreiten kann man einstellen was man sieht.

Damit Du siehst, wie ein Bericht für einen Mandanten gedruckt wird habe ich einen ganz einfachen Bericht gemacht der über einen Button im Formular aufgerufen wird. Was dann auch sinngemäß die Lösung zu Deiner ursprünglichen Frage wäre. Übergabeparameter wäre dann die SachbearbeiterID.
Das Formaular würde man anders aufbauen. Ein Hauptformular für den Mandanten und darin ein Unterformular zur Anzeige der Vorgänge. Hafo und Ufo sind über die Schlüsselfelder zu verknüpfen. Dann siehst Du zu einem Mandanten immer dessen "Abgabe_Unterlagen", automatisch.

Ob das alles vom Arbeitsablauf passt, kann ich nicht sagen, das musst Du prüfen.
Bei Fragen bitte melden.
Ich bin aber erst wieder gegen Abend Online.
Gruß Klaus

Banyan

Vielen Dank Klaus,

das hilft mir sehr und ich weiss es zu schätzen.

ZitatSchaue Dir die Beziehungen an.
Sieht super aus, vielen Dank

ZitatDie Tabelle mit den Monaten, Quartal und Jahr habe ich einfacher aufgebaut. Für Kombis dann die entsprechenden Abfragen verwenden.
OK, Kein Problem

ZitatBitte verwende auf keinen Falle Wertelisten für Kombifelder. Das ist viel zu unflexibel. Eine weitere Name würde immer eine Änderung des Entwurfs (Tabelle oder Formular) erfordern.
Verstehe...

ZitatDie Namen der "AusgeführVon" Personen ist in die Sachbearbeitertabelle aufgenommen. Zur Unterscheidung gibt es dort ein Feld (Sb oder Sek).
Hier habe ich ein Problem, warum zeigt sich im Bericht die ID Nummer und nicht der Name ?

ZitatDie Kombifelder sind umgestellt auf den jeweiligen Fremdschlüssel. Über die Spaltenzahl und Spaltenbreiten kann man einstellen was man sieht.
OK, das muss ich mir in Ruhe ansehen

ZitatDamit Du siehst, wie ein Bericht für einen Mandanten gedruckt wird habe ich einen ganz einfachen Bericht gemacht der über einen Button im Formular aufgerufen wird. Was dann auch sinngemäß die Lösung zu Deiner ursprünglichen Frage wäre. Übergabeparameter wäre dann die SachbearbeiterID.
Vielen Dank, jetzt habe ich Verstanden, wie der Zusammenhang hergestellt wird.

ZitatDas Formaular würde man anders aufbauen. Ein Hauptformular für den Mandanten und darin ein Unterformular zur Anzeige der Vorgänge. Hafo und Ufo sind über die Schlüsselfelder zu verknüpfen. Dann siehst Du zu einem Mandanten immer dessen "Abgabe_Unterlagen", automatisch.
Hm, da muss ich noch dran arbeiten...also es soll nicht nach dem Mandanten gesucht werden sondern nach dem Sachbearbeiter, damit der Sachbearbeiter jeden Tag schauen kann ob neue Unterlagen "seiner" Mandanten eingetroffen sind.
Gut, die Suche und den Berichtsaufruf habe ich auf "Sachbearbeiter" umgestellt das funktioniert auch. Evtl. könnte man das auch in ein UFO packen.


ZitatBei Fragen bitte melden.
Wenn es dir nicht auf die Nerven geht, würde ich gerne auf das Angebot zurückkommen...

Viele Grüße
Armin

Banyan

Hallo Klaus,

ZitatDie Namen der "AusgeführVon" Personen ist in die Sachbearbeitertabelle aufgenommen. Zur Unterscheidung gibt es dort ein Feld (Sb oder Sek).
Hier habe ich ein Problem, warum zeigt sich im Bericht die ID Nummer und nicht der Name ?
Die Tabelle "SachbearbeiterSek_1" ist im Beziehungsfenster zu sehen, existiert aber nicht...ich habe eine entsprechende Abfrage auf die Tabelle Sachbearbeiter erstellt mit dem Kriterieum "Sek"...dann funktioniert es...war das so gedacht ?



Viele Grüße
Armin

MzKlMu

Hallo,
Die Tabelle "SachbearbeiterSek_1". Diese Tabelle ist eine virtuelle (alias) die gibt es nicht wirklich. Diese Tabelle wird im Beziehungsfenster angelegt in dem man die Die Tabelle "SachbearbeiterSek" ein 2tes mal in das Bezeihungsfenster aufnimmt. Das Vorgehen ist notwendig um die Einträge für Sachbearbeiter und Eingetragen von unterscheiden zu können. Die damit erstellten Abfragen müssen manuell entsprechended dem Beziehungsbild geändert werden. Dem Feldnamen muss dann immer auch der entsprechende Tabellenname vorangestellt werden ("SachbearbeiterSek" oder "SachbearbeiterSek_1").

ZitatHier habe ich ein Problem, warum zeigt sich im Bericht die ID Nummer und nicht der Name ?
Da habe ich einen Fehler gemacht. Für den Bericht muss eine gespeicherte Abfrage erstellt werden.
Geänderte DB anbei. Die Abfrage nennt sich qryBericht1 analog zum Berichtsname Bericht1.


Schaue Dir die Abfrage an. Überall wo in einer Tabelle 2x eine gleiche Tabelle als Nachschlagetabelle verwendet wird, muss zwingend ein solches Beziehungskonstrukt verwendet werden. Das sieht erst kompliziert aus, ist aber nach Gewöhnung und Verständnis einfach.

Du kannst es Dir auch einfacher machen und für Sachbearbeiter*innen und Sekretär*innen  ;D getrennte Tabellen anlegen, dann müssen aber 2 Personenkreise gepflegt werden.

Gruß Klaus

Banyan

Hallo,

ZitatDie Tabelle "SachbearbeiterSek_1". Diese Tabelle ist eine virtuelle (alias) die gibt es nicht wirklich. Diese Tabelle wird im Beziehungsfenster angelegt in dem man die Die Tabelle "SachbearbeiterSek" ein 2tes mal in das Bezeihungsfenster aufnimmt. Das Vorgehen ist notwendig um die Einträge für Sachbearbeiter und Eingetragen von unterscheiden zu können. Die damit erstellten Abfragen müssen manuell entsprechended dem Beziehungsbild geändert werden. Dem Feldnamen muss dann immer auch der entsprechende Tabellenname vorangestellt werden ("SachbearbeiterSek" oder "SachbearbeiterSek_1").
Verstehe...

ZitatHier habe ich ein Problem, warum zeigt sich im Bericht die ID Nummer und nicht der Name ?
Da habe ich einen Fehler gemacht. Für den Bericht muss eine gespeicherte Abfrage erstellt werden.
Geänderte DB anbei. Die Abfrage nennt sich qryBericht1 analog zum Berichtsname Bericht1.
OK, Verstanden


ZitatSchaue Dir die Abfrage an. Überall wo in einer Tabelle 2x eine gleiche Tabelle als Nachschlagetabelle verwendet wird, muss zwingend ein solches Beziehungskonstrukt verwendet werden. Das sieht erst kompliziert aus, ist aber nach Gewöhnung und Verständnis einfach.

Du kannst es Dir auch einfacher machen und für Sachbearbeiter*innen und Sekretär*innen  ;D getrennte Tabellen anlegen, dann müssen aber 2 Personenkreise gepflegt werden.

Ich habe mit deinem Tabellenvorschlag weitergearbeitet. Hatte aber eine Abfrage erstellt auf die Tabelle Sachbearbeiter mit der Bedingung "Sek"...das funktioniert dann auch...ist das OK oder macht das aus deiner Sicht Probleme ?

Zunächst hatte ich das nicht im Focus aber
ich bin gerade etwas verzweifelt, weil die das Füllen der Formulare nicht mehr funktioniert...
Du benutzt ja
ZitatPrivate Sub MandantenSuche_AfterUpdate()
  ' Den mit dem Steuerelement übereinstimmenden Datensatz suchen.
    Dim rs As Object
    Set rs = Me.Recordset.Clone
    rs.FindFirst "[Mandant_Nummer_F] = " & Me.MandantenSuche
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

ich hatte ein recordset gefüllt mit der Bedingung
ZitatSet rst = db.OpenRecordset("SELECT Mandant_Nummer, Mandant_Name, Art_Unterlage, Datum_Abgabe, Datum_Weiterg, Sachbearbeiter, Datum_Eintrag, Eingetragen_Von FROM Abgabe_Unterlagen WHERE Mandant_Nummer = '" & Me.Mandant_Nummer.Value & "'")

ich bin gerade komplett durch den Wind und bekomme es nicht mehr hin die Formulare mit den Datensätzen zu füllen...
was ist da passiert ...habe ich etwas übersehen ?

Ich hänge mal die von mir weiterbearbeitete Version an, aber ich habe im code für das Füllen des Formulars nichts geändert...

Viele Grüße
Armin

MzKlMu

Hallo,
was willst Du hier mit einem Recordset. Das sind doch gebundene Formulare, da muss man kein Recordset extra zuweisen, das macht ein gebundenes Formular automatisch.

Die DB schaue ich mir erst später an, ich muss jetzt weg.

Um welches Formular geht es denn (falls es mehr sind) ?
Gruß Klaus

Banyan

Hallo Klaus,

also zunächst mal um das "Abgabe_Unterlagen" Formular
das hatte ursprünglich funktioniert (in meiner Spaghetti Originalversion)

Ich weiß nicht wann es verlorengegangen ist, da ich zwischendurch nicht darauf geachtet habe, aber in allen neueren Versionen wird das Formular nicht mehr ausgefüllt.

Die Idee war doch, mit einer Auswahl im Suchfeld "MandantenSuche" das Formular mit dem record des ausgewählten Mandanten zu füllen.
Die Sekretärin bearbeitet und speichert die Angaben mit dem Formular.

Das "Ordner_Liste Formular muss ich ja sowieso neu aufbauen, da sich die Felder geändert haben.

Den Aufruf des Berichts mit den Records nach Sachbearbeiter, habe ich in eine neues Formular "F_Sachbearbeiter_Unterlagen" gepackt.

Gruß
Armin

MzKlMu

Hallo,
Du musst natürlich die richtigen Feldnamen verwenden.
Außerdem macht hier die Zuweisung eines Recordsets keinen Sinn.
Hier wäre es besser, einfach zu filtern (habe ich auch jetzt erst bemerkt). Außerdem ist die Mandant_Nummer eine Zahl und da darf man keine Hochkomma verwenden.
So reicht es:
Private Sub MandantenSuche_AfterUpdate()
    Me.Filter = "Mandant_Nummer_F = " & Me.MandantenSuche
    Me.FilterOn = True
End Sub

PS:
Ich werde zu der alten Version keine Hilfe mehr leisten.
Gruß Klaus

Banyan

Vielen Dank Klaus,

das Ding stresst mich total, ich sehe oft den Wald vor lauter Bäumen nicht...

ich mache auch Schluss für heute und gehe es morgen mit frischem Kopf nochmal an.

Nein, die alte Version würde ich dir sicher nicht zumuten... :D

Viele Grüße
Armin

Banyan

Guten Morgen Klaus,

vielen Dank für deine Geduld.

Ich habe die Felder für Jahr, Quartal und Monat aus den jeweiligen Abfragen "JahrAbfrage", QUartalABfrage, etc. in das Formular "Abgabe_Unterlagen" eingefügt.

Das funktioniert aber nicht richtig. Ich muss alle 3 Felder füllen, sonst bekomme ich die Fehlermeldung:
"Der Datensatz kann nicht hinzugefügt oder geändert werden, da ein Datensatz in der Tabelle "MonQuartJahr" mit diesem Datensatz in Beziehung stehen muss"

Ich bin mir nicht sicher wie ich die Beziehung aufbauen muss.
Muss ich FS für alle 3 Felder vergeben ?

Gruß
Armin


MzKlMu

#28
Hallo,
ich würde diese Tabelle nicht mit in die Beziehungen aufnehmen sondern nur als Nachschlagetabelle nutzen. Hatte ich glaube ich auch bei mir nicht drin. Kann gerade nicht nachschauen.

Anmerkung:
Zitat"Der Datensatz kann nicht hinzugefügt oder geändert werden ....
Mal eine Erklärung zu dieser Fehlermeldung. Wenn man in Access ein Zahlen(Schlüssel)feld anlegt, so wird der Standardwert automatisch mit einer 0 vorbelegt. Was kompletter Unsinn ist, denn den Fremdschlüssel 0 gibt es ja nicht in der Haupttabelle. Durch die eingestellte RI führt das dann zu dieser Fehlermeldung. Daher sollte man immer drandenken und beim Anlegen des Feldes den Standardwert rausnehmen (keinen Eintrag).
Du siehst, auch die Automatiken von Access sind in Frage zu stellen.

Aber wie gesagt, hier ausnahmsweise keine Beziehung erstellen.
Gruß Klaus

Banyan

ja super Klaus,

das war's, vielen Dank.

Mühsam nährt sich das Eichhörnchen, ich hoffe ich kann das Projekt bald zu Ende bringen...

Viele Grüße
Banyan