Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Fremdfeld aus anderer Tabelle (FK) mit Verknüpfung zur Bezeichnung

Begonnen von Chris_HN, Juli 23, 2023, 15:48:44

⏪ vorheriges - nächstes ⏩

Chris_HN

..und wieder macht Access nicht, was das Problem vorm Computer will....

Aktuell versuche ich, das Bestellformular zu kreieren.
Ich würde gern den Status der den Bestellungen (bereits) zugeordneten Rechnungen mit in die Bestellung einbinden.

Aktuell habe ich hier ein HaFo (basierend auf tbl_Bestellungen, in welchem man Bestellungen erstellen kann und ein Ufo (basierend auf tbl_Bestellpositionen) in dem man die zur Bestellung gehörenden Artikel einträgt. In der tbl_Bestellungen befindet sich der FK zum Rechnungsstatus. Die Basistabelle mit den Werten hierfür ist die tbl_Rechnungsstatus. FK sind in tbl_Rechnung und tbl_Bestellungen.

Beim Eingang einer Lieferantenrechnung schreibe ich dann neben dem Betrag und dem Eingangsdatum auch den Status (eingegangen, offen, bezahlt, storniert, etc.) in das Fomular. Ist die Rechnung bezahlt (oder offen, in Mahnstufe etc...), dann hätte ich den Eintrag aus dem Feld gerne im Formular mit den Bestellungen angezeigt. Hier bekomme ich jedoch nur die ID angezeigt und nicht den zugeordneten Name.

Ich habe das mit einer Abfrage probiert, in der ich als Tabellen die tbl_Bestellungen und die tbl_Rechnungen_ER (für die EingangsRechnungen - ich erfasse hier nur die Eingangsrechnungen, für die Ausgangsrechnungen würde ich eine extra Tabelle machen) genommen habe und die für das Forumlar notwendigen Felder angezogen habe. Die Abfrage funktioniert, aber ich kann hier weder Datensätze anlegen oder ändern.

Was läuft hier meinerseits falsch?
In diesem Sinne hätte ich gern noch gewusst, wie ich es denn machen kann, dass ich zwar im Formular die Bestellungen neu anlegen kann und bestehende Bestellungen einsehen kann, aber nachträglich nicht mehr ändern kann.

Steh da grad seit Stunden auf dem Schlauch und freue mich über einen kleinen Hinweis....

Hier noch der SQL-Code der Abfrage...

SELECT tbl_Bestellungen.best_ID, tbl_Bestellungen.LBed_ID_f, tbl_Bestellungen.best_Bezeichnung, tbl_Bestellungen.best_Bestelldatum, tbl_Bestellungen.[best_Bestellnummer berechnet], tbl_Bestellungen.best_Bestellnummer_Lieferant, tbl_Bestellungen.[best_Lieferdatum Soll], tbl_Bestellungen.[best_Lieferdatum Ist], tbl_Bestellungen.best_Notizen, tbl_Bestellungen.lief_ID_f, tbl_Bestellungen.proj_ID_f, tbl_Bestellungen.pers_ID_f, tbl_Bestellungen.sta_ID_f, tbl_Bestellungen.zbed_ID_f, tbl_Rechnungen_ER.rstat_ID_f, tbl_Rechnungen_ER.rart_ID_f
FROM tbl_Bestellungen LEFT JOIN tbl_Rechnungen_ER ON tbl_Bestellungen.best_ID = tbl_Rechnungen_ER.best_ID_f
GROUP BY tbl_Bestellungen.best_ID, tbl_Bestellungen.LBed_ID_f, tbl_Bestellungen.best_Bezeichnung, tbl_Bestellungen.best_Bestelldatum, tbl_Bestellungen.[best_Bestellnummer berechnet], tbl_Bestellungen.best_Bestellnummer_Lieferant, tbl_Bestellungen.[best_Lieferdatum Soll], tbl_Bestellungen.[best_Lieferdatum Ist], tbl_Bestellungen.best_Notizen, tbl_Bestellungen.lief_ID_f, tbl_Bestellungen.proj_ID_f, tbl_Bestellungen.pers_ID_f, tbl_Bestellungen.sta_ID_f, tbl_Bestellungen.zbed_ID_f, tbl_Rechnungen_ER.rstat_ID_f, tbl_Rechnungen_ER.rart_ID_f;
Das Gras wächst nicht schneller, wenn man daran zieht.
(Afrikanisches Sprichwort)

MzKlMu

Hallo,
die Abfrage ist gruppiert. Da ist es grundsätzlich nicht möglich Daten zu ändern oder anzufügen. Da gibt es auch keinen Trick. Wieso Du hier überhaupt eine gruppierte Abfrage hast erschließt sich mir nicht.
Das Hafo braucht doch nur die Tabelle mit den Bestellungen. Das Kombi für den Status kannst Du so einstellen, dass man den Klartext sieht und nicht die Zahl.
Zitatist die tbl_Rechnungsstatus. FK sind in tbl_Rechnung und tbl_Bestellungen.
Der Status ist doch der Bestellstatus, der hat in der Rechnungstabelle nichts zu suchen.

Um einen Datensatz zu sperren, brauchst Du ein Feld in der Tabelle (Ja/Nein). Wenn die Dateneingabe fertig ist, setzt Du hier den Haken auf Ja (gesperrt).
Im Ereignis "Beim Anzeigen" kannd as Hakenfeld abgefragt werden und der Datensatz wird gesperrt.

Du musst Dir aber noch ein Hintertürchen überlegen um das wieder rückgängig machen zu können, wenn ein Fehler ausgebessert werden muss. Das das Formular gesperrt ist, kann auch der Haken nicht entfernt werden.
Gruß Klaus

Chris_HN

#2
Zitat von: MzKlMu am Juli 23, 2023, 16:08:31Das Hafo braucht doch nur die Tabelle mit den Bestellungen.
..und eben den Wert vom FK aus dem Rechnungsstatus (wurde die Bestellung bereits bezahlt oder nicht, ist sie in der Mahnstufe oder nicht)

Zitat von: MzKlMu am Juli 23, 2023, 16:08:31Das Kombi für den Status kannst Du so einstellen, dass man den Klartext sieht und nicht die Zahl.
Auch das Kombi von einem FK? Da steht bei mir dann nur die ID, aber nicht der Betrag....
Mein Problem ist auch, wie bekomme ich den Rechnungsstatus aus der tbl_RechnungenER in die tbl_Bestellungen... Direkt als FK zur tbl_Rechnungsstatus zeigt mir ja nur die Einträge der Auswahl an....
Das Gras wächst nicht schneller, wenn man daran zieht.
(Afrikanisches Sprichwort)

Chris_HN

Zitat von: MzKlMu am Juli 23, 2023, 16:08:31Um einen Datensatz zu sperren, brauchst Du ein Feld in der Tabelle (Ja/Nein). Wenn die Dateneingabe fertig ist, setzt Du hier den Haken auf Ja (gesperrt).
Im Ereignis "Beim Anzeigen" kannd as Hakenfeld abgefragt werden und der Datensatz wird gesperrt.

Darauf wäre ich nicht gekommen. Macht man das über das Erstellen der Schaltfläche oder braucht es da VBA?

Zitat von: MzKlMu am Juli 23, 2023, 16:08:31Du musst Dir aber noch ein Hintertürchen überlegen um das wieder rückgängig machen zu können, wenn ein Fehler ausgebessert werden muss. Das das Formular gesperrt ist, kann auch der Haken nicht entfernt werden.
ich würde das dann ggf. so realisieren, dass man das in der Tabelle im Backend ändern muss als Admin.
Das Gras wächst nicht schneller, wenn man daran zieht.
(Afrikanisches Sprichwort)

Beaker s.a.

Hallo Chris,
ZitatDer Status ist doch der Bestellstatus, der hat in der Rechnungstabelle nichts zu suchen.
Heisst, das FK-Feld in Rechnungen ist überflüssig und die entsprechende Beziehung auch.
Genauso mit den Bestell-Status. Eine Bestellung hat (für mich) andere Status als eine Rechnung.
Bestellung:
- abgeschickt (Datum)
- bestätigt (Datum)
- storniert (Datum)
- Teillieferung (Datum)
- Komplettlieferung (Datum)
Rechnung:
- Eingang (Datum)
- offen
- Teilzahlung
- komplett_bezahlt
- storniert (gibt es eigentlich nicht, es muss eine Rechnungskorrektur sprich: Gutschrift
erstellt werden (GdoBf)
Ich würde wohl die beiden Tabellen zusammenlegen, umbenennen (tbl_Status) und die
Status typisieren.
ZitatDas Hafo braucht doch nur die Tabelle mit den Bestellungen.
Und die zugehörigen Rechnungen in ein UFo.
Die "Hintertür" würde ich per AutoKeys einbauen. Wenn vorgesehen von vergebenen Rechten
abhängig.

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)

MzKlMu

Hallo,
Zitat von: Chris_HNvom FK aus dem Rechnungsstatus (wurde die Bestellung bereits bezahlt oder nicht, ist sie in der Mahnstufe oder nicht)
Was willst Du mit dem Rechnungsstatus in der Bestellung ? Das ist doch nicht sinnvoll. Gemahnt wird doch die Rechnung und nicht die Bestellung. Und bezahlt wird ja auch die Bestellung.
Der Rechnungsstatus gehört in die Rechnungsstabelle und der Bestellstatus in die Bestelltabelle.
Daher würde ich 2 Tabellen anlegen 1x für den Bestellstatus und 1x für den Rechnungsstatus.
Zitat von: ekkehardIch würde wohl die beiden Tabellen zusammenlegen, umbenennen (tbl_Status) und die
Status typisieren.
Das würde ich nicht machen. Das erfordert abhängige Kombifelder mit allen ihren Nachteilen. Die Status sind ja auch verschieden, sodass ein Zusammenlegen keinen Vorteil ergibt.
Dann gibt es auch noch die Rechnungsart. Was soll die in Der Bestelltabelle ?
Wie der NAme schon sagt bezieht sich die Art auf die Rechnung, daher ist der FK zur Rechnungsart in der Bestelltabelle überflüssig und ersatzlos zu löschen.

Zitat von: Chris_HNAuch das Kombi von einem FK? Da steht bei mir dann nur die ID, aber nicht der Betrag....
Natürlich geht das mit Kombi und FK. Es muss nur die ID und der Klartext in die Datenherkunft des Kombis. Aber was willst Du hier mit dem Betrag?
Gruß Klaus

Chris_HN

Erstmal herzlichen Dank für die Hinweise. Ich wollte den Rechnungsstatus eigentlich nur informationshalber drin haben.

Zitat von: MzKlMu am Juli 23, 2023, 20:04:51Natürlich geht das mit Kombi und FK. Es muss nur die ID und der Klartext in die Datenherkunft des Kombis

Danke.... der Hinweis hat mir gefehlt. Ich habe noch immer so meine Probleme mit "Steuerelementinhalt" und "Datensatzherkunft". Da zerschieße ich mir oftmals paar Sachen....
Das Gras wächst nicht schneller, wenn man daran zieht.
(Afrikanisches Sprichwort)

Chris_HN

Zitat von: Beaker s.a. am Juli 23, 2023, 18:42:50Die "Hintertür" würde ich per AutoKeys einbauen.

Danke Ekkehard für den Tipp. Werde ich mich mal einlesen.....
Das Gras wächst nicht schneller, wenn man daran zieht.
(Afrikanisches Sprichwort)

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)