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 ⏩

Banyan

Hallo an Alle,


ich müsste einen Werte  "Sachbearbeiter" aus einem Kombinationsfeld in einem Formular für eine Abfrage übernehmen oder Bericht übernehmen.
D.h. im Kombinationsfeld klicke ich auf einen Sachbearbeiternamen und erstelle eine Abfrage oder Bericht mit allen Einträgen die diesen Namen enthalten.
Also ich müsste den Eintrag aus dem Kombinationsfeld in eine Variable einlesen und mit dieser Variable eine Abfrage erstellen.
Im Moment habe ich keine Idee wie ich das machen kann.
Könnte mir jemand helfen ?

Viele Grüße
Banyan

Beaker s.a.

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)

Banyan

Hallo Beaker,

vielen Dank für deine Antwort.

ich denke das kommt in die Richtung...
aber offen gesagt verstehe ich nicht ganz...

meine Daten sind:
Steuerelementinhalt = Sachbearbeiter
hiermit möchte ich aus der Tabelle "Abgabe_Unterlagen" alle Records selektieren die im Feld "Sachbearbeiter" den Namen aus dem Kombifeld enthalten.
und diese Records in einer Abfrage oder einem Bericht anzeigen.

Der Name der Abfrage  = SachbearbeiterAkten

Set qdf = db.QueryDefs("Meine_Parameter_Abfrage")
was wäre die parameterabfrage ?
qdf.Parameters!MeinParameter1 = "Wert_für_Parameter1_in_Anführungszeichen_falls_er_ein_Text_ist"

der code gehört dann in das Kombinationsfeld welches den SachbearbeiterName enthält ?
und der Sachbearbeitename ist  = "Wert_für_Parameter1_in_Anführungszeichen_falls_er_ein_Text_ist"

Viele Grüße
Banyan


MzKlMu

Hallo,
es müsste erst mal geklärt werden, wie die Datenbank aufgebaut ist.
Es muss ja mimdestens diese beiden Tabellen geben:
Eine Tabelle "Abgabe_Unterlagen" und eine Tabelle "Sachbearbeiter".
Wenn das richtig (im Sinne einer Datenbank) aufgebaut ist, dann sollte in der Tabelle "Abgabe_Unterlagen" die Schlüsselzahl des Sachbearbeiters stehen und nicht dessen Name. Zwischen beiden Tabellen muss es über die Schlüsselfelder eine Beziehung geben.
Als Parameter darf dann nicht der Klarname verwendet werden, sondern es muss die Schlüsselzahl zur Anwendung kommen.

Es muss also erst mal die Struktur geklärt werden.

Sind Beziehungen eingerichtet ?
Wenn ja, bitte mal das Bild zeigen, wenn nein, warum nicht ?
Im Falle von nein wäre das Einrichten von Beziehungen unerlässlich. Auch referentielle Integrität sollte dann eingestellt werden.
Gruß Klaus

Banyan

Hallo Klaus,

vielen Dank für deine Antwort.

Ja Beziehungen sind eingerichtet über das Feld Sachbearbeiter.

"sollte in der Tabelle "Abgabe_Unterlagen" die Schlüsselzahl des Sachbearbeiters"
das verstehe ich nicht, was ist die Schlüsselzahl bzw.wie setze ich die ein ?

"referentielle Integrität sollte dann eingestellt werden"
das habe ich nicht, was würde das ändern ?

Viele Grüße
Banyan

MzKlMu

#5
Hallo,
die ID wäre z.B. die Schlüsselzahl und sollte auch Primärschlüssel werden. Die Beziehung sollte über diese Schlüsselzahl laufen und nicht über den Sachbearbeiter als Klartext. In die Tabelle "Abgabe_Unterlagen" muss dann ein Zahlenfeld das dann als Fremdschlüssel dient. Das Feld "Sachbearbeiter" in dieser Tabelle entfällt dann ersatzlos.
Das Feld "Mandant_Nummer" sollte ein Zahlenfeld sein, Textfelder sind als Primärschlüssel ungeeignet.

Im Anhang ein Bild, da habe ich das mal grob dargestellt.

Was referentielle Integrität ist, solltest Du mal bei Google nachschlagen. RI ist eine wesentlicher Bestandteil einer Datenbank.

Dir fehlen die Grundlagen zur Entwicklung relationaler Datenbanken. Access muss man lernen, da kann man nicht einfach mal machen.

Zu den Grundlagen hier 2 Links:

Theorie:
https://www.hdm-stuttgart.de/~riekert/lehre/db-kelz/

Praxis:
https://www.access-tutorial.de/
Gruß Klaus

Banyan

Hallo Klaus,

vielen Dank für deine Antwort und die Hinweise, die ich auch gerne umsetzen werde.

Was referentielle Integrität bedeutet ist mir schon klar, ich war nur nicht sicher, was es in diesem Fall bringt.
Aber sicher du hast Recht, man sollte von Anfang an ordentlich arbeiten.

Leider bin ich noch keinen Schritt weiter aus meiner ursprünglichen Frage, wie ich nun den Wert des Sachbearbeiters aus dem Formular weiterverwenden kann, um damit einen Bericht oder eine Abfrage mit den entsprechenden records aus der Tabelle "Abgabe_Unterlagen" zu erstellen...

MzKlMu

Hallo,
lade mal die DB mit den 2 Tabellen als Zipfile hier im Forum hoch.
Mit einigen anonymen Datensätzen.
Gruß Klaus

Banyan

Hallo Klaus,

anbei die Test DB...
Durch die vorgenommenen Änderungen funktionieren einige Suchen in den Forms nicht mehr, aber das ist im Moment auch nebensächlich.

Gruß
Armin

MzKlMu

Hallo,
die Tabellen sind falsch aufgebaut. Das kann so nicht funktionieren.
Die Mandant_Nummer darf es nur in der Mandantenlist als Primärschlüssel geben, in den anderen Tabellen muss das Fremdschlüssel sein und muss Duplikate zulassen. Versuche mal jetzt in der Tabelle "Abgabe_Unterlagen" 2 unterschiedliche Mandanten zu erfassen.

Kann ein Mandant in der Tabelle "Abgabe_Unterlagen" mehrere Unterlagsarten haben ?
Wenn ja (was ich annehme), geht das nicht mit dieser Tabelle.

Welche Funktion hat die Tabelle "MonQuartJahr" ?
Mir scheint die überflüssig.

Was ist mit der Tabelle "Ordner_Liste" ? Da ist auch die Mandant_Nummer Primärschlüssel, was zwingend nicht sein darf, Du könntest zu einem Mandanten nur einen Ordner anlegen.

Bitte beschreibe die Aufgabe der DB mal genauer, so jedenfalls funktioniert das nicht.

Wenn ich die Zusammenhänge kenne, mache ich Dir einen Vorschlag.
Gruß Klaus

Banyan

Hallo Klaus,

vielen Dank für dein nettes Angebot.

der Zweck ist im Prinzip der, ein Werkzeug zu haben, welches von der Sekretärin gepflegt wird, damit die Sachbearbeiter immer wissen wo die Mandantenakten sich befinden.
Im Moment läuft jeder Sachbearbeiter durch das Gebäude und fragt, wer weiss wo sich die Akte X befindet.
Im Büro der Sekretärin befindet sich die Zentralablage, 2 Schränke ,, Eingang" ,,Ausgang".
Der Ablauf sollte sein, wenn Mandanten kommen geben sie ihre Akten bei der  Sekretärin ab.
Sie trägt sie entsprechend in die ,,Tabelle_Abgabe" Unterlagen ein und stellt sie in den Schrank ,,Eingang". Die Sachbearbeiter können sich jederzeit einen Bericht ziehen, um zu sehen ob neue Akten für sie eingegangen sind.
Sie holen die Akte ab und es wird entsprechend eingetragen - ursprünglich war hier nur die Tabelle ,,Ordner_liste" vorgesehen....jetzt kann jeder Sachbearbeiter sehen wo die Akte sich befindet und was der Bearbeitungsstand ist.
Wenn die Akte bearbeitet ist, wird sie zurückgebracht in die Zentralablage und die Sekretärin aktualisiert die Tabelle ,,Ordner_Liste".

Gruß
Banyan


MzKlMu

allo,
bitte beantworte auch meine Fragen.
Gruß Klaus

Banyan

#12


ZitatKann ein Mandant in der Tabelle "Abgabe_Unterlagen" mehrere Unterlagsarten haben ?
Wenn ja (was ich annehme), geht das nicht mit dieser Tabelle.

—Ja, mehrere Unterlagsarten sind vorhanden

ZitatWelche Funktion hat die Tabelle "MonQuartJahr" ?
Mir scheint die überflüssig.

— bei der Abgabe wird eingetragen für welches Jahr, Quartal, Monat die Unterlagen sind

ZitatWas ist mit der Tabelle "Ordner_Liste" ? Da ist auch die Mandant_Nummer Primärschlüssel, was zwingend nicht sein darf, Du könntest zu einem Mandanten nur einen Ordner anlegen.

—Die Ordnerliste war der erste Versuch den Aktenverbleib zu erfassen, da war noch nicht klar,  dass auch ein Formular für die Sekretärin gebraucht wird um die die Abgabe durch Mandanten zu erfassen.


MzKlMu

Hallo,
Zitat—Ja, mehrere Unterlagsarten sind vorhanden
Und wie soll das mit der jetzigen Tabelle "Abgabe_Unterlagen" nur eine einzige Unterlagsart erfassen, ist Dir das klar ?

Zitatfür welches Jahr, Quartal, Monat die Unterlagen sind
Warum nimmst Du da nicht einfach ein Datum ?

Ich glaube, Du hast Die Sache mit den Primärschlüsseln noch nicht richtig verstanden. Wenn in der Tabelle "Abgabe_Unterlagen" die Mandant_Nummer zum PS wird, kannst Du nie mehr als ein Vorgang zu einem Mandanten anlegen und das kann ja nicht sein.
Den Mandant_Name darf es in der Datenbank nur in einer Tabelle geben, nämlich in der Mandantenliste. In allen anderen Tabellen gibt es nur das Schlüsselfeld zum Mandanten (=dessen PS als Fremdschlüssel).
Die Mandant_Nummer darf es nur einziges mal als PS geben, nämlich nur in der Mandantenliste.


PS:
Bitte gebe Dir etwas mehr Mühe mit den Antworten. Man sollte schon genauer erkenne was Zitat ist und was Antwort.
Ich habe das in Deinem letzten Beitrag geändert.
Gruß Klaus

Banyan

#14
Hallo Klaus,
ZitatUnd wie soll das mit der jetzigen Tabelle "Abgabe_Unterlagen" nur eine einzige Unterlagsart erfassen, ist Dir das klar ?
--> Ja, das ist mir klar,ich hatte, als ich die Tabelle angelegt habe, noch nicht gewusst, dass ein Mandant mit mehreren Unterlagen gelistet werden muss
ZitatWarum nimmst Du da nicht einfach ein Datum ?
--> Das ist Vorgabe, da es sich auf den Zeitraum bezieht für welchen die Unterlage zugeordnet werden muss.
aber jetzt würde ich natürlich auch eher ein Auswahlfeld mit vorgegebenen Werten nehmen statt einer Tabelle.

Sorry, das mit dem Zitieren muss ich nochmal üben...