Neuigkeiten:

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

Mobiles Hauptmenü

Neuer Datensatz über Formular nicht möglich - die Tabelle kann aber erw werden

Begonnen von Andreas Irmer, Dezember 15, 2022, 22:53:03

⏪ vorheriges - nächstes ⏩

Andreas Irmer

Guten Abend,
ich erstelle eine Datenbank, um Montagetermine verschiedenen Kundenaufträgen, verschiedenen Mitarbeitern und auch Tagen zuzuordnen.
Es gibt die Tabelle Aufträge, in denen die Kundendaten erfasst werden. Außerdem wir hier erfasst, welcher Mitarbeiter das Fz des Kunden wann entgegen nimmt und welcher Mitarbeiter wann das Fz zurück gibt.
Ich kann die Daten in den Tabellen entsprechend erfassen.
Jetzt arbeite ich an einem Formular, um neue Montagetermine zu erfassen. In diesem Formular möchte ich die Referenz auf den Kundenauftrag erfassen, die Kundendaten darüber ausgeben, anzeigen wie viele AW (Arbeitswerte) der Auftrag umfasst und möglichst auch, wie viele AW bereits in Terminen verplant sind. Das Formular zeigt die bestehenden Daten an. Ich kann aber keine neuen Datensätze hinzufügen.

Die vorhandenen Beziehungen hänge ich mal an. Den Aufbau des Formulars ebenfalls. Was benötigt ihr noch, um meinen Fehler zu finden.

Danke auf jeden Fall im Voraus.

Danke im Voraus für eure Hilfe.
Andreas Irmer
für jede Hilfe dankbar und für Tipps zum Thema Wohnmobil, Wohnwagen auch für jeden erreichbar
  •  

MzKlMu

Hallo,
es liegt an der Abfrage, zeige daher den SQL Code der Abfrage (bitte formatiert und Code Tags).

Nachtrag:
In den Beziehungen würde ich grundsätzlich den Typ 1 einstellen. Den Typ ändert man nur bei Bedarf (und nur dann !) in den Verknüpfungen der Abfrage(n).
Gruß
Klaus
  •  

Andreas Irmer

Hallo Klaus,

ich hoffe, das hier ist das, was Du gesucht hast?
SELECT
  Auftraege.ID,
  Auftraege.txt_AB_Nr,
  Auftraege.txt_Kd_Name,
  Termine.*,
  Termine.ref_Auftrag, 
  Termine.sel_Mitarbeiter,
  Termine.Dat_Datum,
  Termine.Dat_Beginn,
  Termine.int_AW_planen

FROM Auftraege INNER JOIN Termine ON Auftraege.ID = Termine.ref_Auftrag
ORDER BY Auftraege.int_Kd_Nr, Auftraege.txt_AB_Nr;

Die Verknüpfungen habe ich alle auf Typ 1 gestellt.
Andreas Irmer
für jede Hilfe dankbar und für Tipps zum Thema Wohnmobil, Wohnwagen auch für jeden erreichbar
  •  

markusxy

@andreas, hast du jetzt das Forum gewechselt?

Grundlegend:
Im Subform sollten im Select Teil sollten nur Daten von Termine stehen.
Also eigentlich nur die Spalten aus Tabelle Termine, die auch wirklich angezeigt werden bzw. benötigt werden und keine Daten aus Auftraege.

Außerdem ist die Sortierung doch sinnlos, da im HF ja nur ein Auftrag steht.
Also gesamten Join raus und wenn Sortierung nach einem sinnvollen Kriterium.


Übrigens: Das Datenmodell scheint auch noch überarbeitswert:  Kundennummer und Kundenname in Aufträge geht gar nicht.

  •  

MzKlMu

Hallo,
noch weitere Anmerkungen:
Du müsstest ja 2 Abfragen haben, eine für das Hafo und eine für das Ufo.

ZitatDie Verknüpfungen habe ich alle auf Typ 1 gestellt.
Im Beziehungsbild sind das Beziehungen und keine Verknüpfungen. Beziehungen werden im Beziehungsfenster eingestellt und werden im Regelfall nicht mehr geändert. Es sei denn, es muss am Datenmodell was geändert werden. Verknüpfungen werden in Abfragen angelegt. Verknüpfungen können (müssen aber nicht) sich von Beziehungen unterscheiden und können beligig (sinnvoll) geändert werden.
Das beziehungsbild sollte auch alle Tabeleln umfassen. Mir war das mit den Kundenfeldern (Hinweis Markus) gar nicht aufgefallen. In die Auftragstabelle gehört die KundenID und sonst keine Felder des Kunden (wie bereits gesagt).

Du solltest Dir eine Datenbank anlegen zum Entwickeln mit Spieldaten, eine soclhe Datenbank kannst Du auch mal komplett hier hochladen. Außerdem sparst Du das unkenntlich machen von Feldinhalten bei Bildern.

PS:
Die vielfach als vorteilhaft genannten Kürzel vor den Feldnamen (txt, bool, int, ....) halte ich für ersatzlos überflüssig. Machen nur Arbeit. Stelle Dir mal vor, Du bisst schon in einem fortgeshrittenen Statium der DB und stellst plötzlich fest, dass Du einen Datentyp ändern musst. Was Du da alles ändern musst wenn Du konsequent bis, Formulare, Abfragen, Berichte, VBA Code. Und manches findet man nicht auf Anhieb.
Das ist jetzt nur ein Rat und auch eine persönliche Sicht.
Gruß
Klaus
  •  

Andreas Irmer

Hallo zusammen und erst einmal herzlichen Dank für die ausführlichen Erläuterungen. Meine Datenbank Zeiten sind lange her und ich komme nach und nach wieder rein.
Zitat von: markusxy am Dezember 16, 2022, 10:16:13@andreas, hast du jetzt das Forum gewechselt?
@markusxy Warum fragst Du? Ich bin doch hier im access-o-mania Forum und stelle meine Fragen in den jeweils Betroffenen Bereichen Tabellen, Abfragen, Formulare.
Ich habe auch in einem anderen Forum geschrieben, fühle mich hier aber deutlich besser aufgehoben. Ich hoffe ich darf bleiben  ;) ?

Zitat von: MzKlMu am Dezember 16, 2022, 11:26:29Im Beziehungsbild sind das Beziehungen und keine Verknüpfungen.
Ja, ich verstehe. Es ist wichtig hier die richtigen Begriffe zu verwenden. Ich gelobe Besserung!

Zitat von: MzKlMu am Dezember 16, 2022, 11:26:29PS:
Die vielfach als vorteilhaft genannten Kürzel vor den Feldnamen (txt, bool, int, ....) halte ich für ersatzlos überflüssig.
:o Danke, mir ging das schon früher gegen den Strich und ich wollte es jetzt besonders gut machen... Jetzt kann ich wieder normal denken.

Zum Thema Tabelleninhalt Aufträge:
Wir haben zu 95% Einzelaufträge. Ein Kunde = ein Auftrag. Daher habe ich gar keine Tabelle Kunden angelegt und erfasse die Daten alle in der Tabelle Auftraege.
Ich gebe euch natürlich recht, dass im Normalfall eine Tabelle Kunden helfen würde, wenn es wiederkehrende Kunden sind. Wir haben jedoch festgestellt, dass sich bei den Kunden als "Wiederholungstäter" immer auch Daten ändern und ich möchte nicht für den Folgeauftrag eines Kunden die Handynummer in der Kundentabelle ändern und damit dann auch die Daten des alten Auftrags verändern.

Ich habe das Formular jetzt komplett neu aufgebaut und kann wieder neue Daten eingeben. Was mir jetzt allerdings fehlt ist die hilfsweise Darstellung zum Beispiel des Kundennamens, der Telefonnummer aus der Tabelle Aufträge im Terminformular.

Hintergrund: Der Mitarbeiter plant einen neuen Montagetermin und gibt dazu die Auftragsnummer ein. Nachdem bei uns sehr viele Unterbrechungen vorkommen, möchte ich halt dass der Mitarbeiter oder halt auch ich, wenn ich dann wieder an den Bildschirm komme und in der Hektik denke, die Montage für Kunde 0815 einzugeben, der Auftrag dann aber für Kunde 4711 ist.

Wenn ich jetzt dem Formular ein Feld Kd_Name aus der Tabelle Auftraege hinzufüge, kann ich wieder nichts mehr bearbeiten. Gibt es nicht die Möglichkeit die Infos, die hinter der Beziehung Termintabelle ref_Auftraege in der Tabelle Auftraege liegen?

Danke nochmals für Eure Hilfe. 
Andreas Irmer
für jede Hilfe dankbar und für Tipps zum Thema Wohnmobil, Wohnwagen auch für jeden erreichbar
  •  

MzKlMu

Hallo,
Du hast doch hier ein Hafo und darin ein Ufo. Im Hafo zeigst Du die Auftragsdaten an (mit den Kundendaten) und im Ufo die Termindaten. In den Formularen nur die Tabellen/Abfragen die Du dazu brauchst.
Hafo und Ufo werden über IDAuftrag und ref_Auftrag verknüpft.
Dann hast Du im Ufo nur die Termine des im Hafo angezeigten Kunden. Wird durch das Hafo geblättert, passen sich die Termine im Ufo automatisch an.

Nenne die PS-Felder nicht einfach ID, sondern mit Bezug zur Tabelle (IDAuftrag, IDTermin, IDMitarbeiter).
Was kommt eigentlich in die Felder ..Fuen und ..Fueg mit den Datumsfeldern ?
Gruß
Klaus
  •  

Andreas Irmer

Hallo Klaus,

also benötige ich eigentlich nur das Formular Auftraege, da ich dort ja die Montagetermine im Ufo mit eingeben kann.

Mann, Mann, manchmal steht man echt auf dem Schlauch!

Besteht eigentlich die Möglichkeit ein Ufo doppelt anzuzeigen? Ich denke da an das Ufo als Eingabeformular und dann noch einmal als Tabelle, damit man die bereits gebuchten Termine einfach als Tabelle sehen kann.

Übrigens noch zum Thema Fuen und Fueg. Das ist der Termin zur Fahrzeugübernahme (Kunde bringt das Fahrzeug) und Fahrzeugübergabe (Kunde holt es wieder ab).

Letzten Endes möchte ich hierüber alle Termine in die entsprechenden Outlook-Kalender schreiben und ermitteln, wie unsere Auslastung über einen bestimmten Zeitraum ist. Ich schätze, dass ich dazu sicher auch noch mal eure Hilfe benötigen werden.  :-[
Andreas Irmer
für jede Hilfe dankbar und für Tipps zum Thema Wohnmobil, Wohnwagen auch für jeden erreichbar
  •  

MzKlMu

Hallo,
ZitatBesteht eigentlich die Möglichkeit ein Ufo doppelt anzuzeigen?
Ich würde hier im Ufo die Termine als Endlosformular anzeigen. Und dann bei einem Doppelkick ein weiteres Einzelformular öffen, das den Datensatz vollständig anzeigt und mit dem man dann auch neue Termine anlegen kann.
Was mich aber etwas wundert, ist dass es zu einem Auftrag mehrere Termine geben kann (es ist ja eine 1:n Bez.)
ZitatFuen und Fueg. Das ist der Termin zur Fahrzeugübernahme (Kunde bringt das Fahrzeug) und Fahrzeugübergabe
Die Werte gehören mit Datum und Art (Übernahme/Übergabe) als je ein Datensatz in eine extra Tabelle. Damit entfällt auch die Alliastabelle "Mitarbeiter_1".
Zitatalle Termine in die entsprechenden Outlook-Kalender schreiben und ermitteln, wie unsere Auslastung über einen bestimmten Zeitraum ist.
Was willst Du da mit Outlook, eine solche Auswertung kann Access besser.
Gruß
Klaus
  •  

Andreas Irmer

Hallo Klaus,

das Endlosformular habe ich eingestellt und ich kann auch mit Doppelklick dann das zweite Formular zur Eingabe der Daten öffnen. Es wird allerdings immer der erste Datensatz geöffnet und nicht der von mir markierte Datensatz des Endlosformulars.
Ich habe die Öffnung bei Doppelklick hinterlegt über die Eigenschaft Doppelklick im Detailbereich des Ufos und dann mit dem Makrogenerator gearbeitet. Hast Du hier einen Tipp?

Zitat von: MzKlMu am Dezember 16, 2022, 23:43:33Die Werte gehören mit Datum und Art (Übernahme/Übergabe) als je ein Datensatz in eine extra Tabelle. Damit entfällt auch die Alliastabelle "Mitarbeiter_1".
Das ist schon umgesetzt!

Zitat von: MzKlMu am Dezember 16, 2022, 23:43:33Was mich aber etwas wundert, ist dass es zu einem Auftrag mehrere Termine geben kann (es ist ja eine 1:n Bez.)
Das ist einfach zu erklären: Wir haben die Fahrzeuge teilweise längere Zeit da und dann arbeitet zum Beispiel am Montag Monteur A und Mittwochs dann Monteur B. Donnerstags stellen dann A und C den Auftrag fertig.

Zitat von: MzKlMu am Dezember 16, 2022, 23:43:33Was willst Du da mit Outlook, eine solche Auswertung kann Access besser.
Natürlich laufen die Auswertungen über Access. Nur deswegen mache ich mir ja die Arbeit hier. Bei Outlook geht es mir rein um die Anzeigen im Kalender, weil ich da auch auf einer Messe im Handy reinsehen kann, wenn ich die Datenbank nicht zur Hand habe.
Andreas Irmer
für jede Hilfe dankbar und für Tipps zum Thema Wohnmobil, Wohnwagen auch für jeden erreichbar
  •  

markusxy

  •  

markusxy

Zitat von: Andreas Irmer am Dezember 16, 2022, 18:44:59Wir haben zu 95% Einzelaufträge. Ein Kunde = ein Auftrag. Daher habe ich gar keine Tabelle Kunden angelegt und erfasse die Daten alle in der Tabelle Auftraege.

Auch wenn man das macht ist es falsch eine KundenID zu führen.
Wenn der Kunde im Auftrag geführt wird, musst du bei allen Bezügen auf den Kunden die AuftragsID verwenden, ansonsten brichst du mit der Normalisierung.
  •  

Andreas Irmer

Zitat von: markusxy am Dezember 17, 2022, 14:17:03Es gibt in einem anderem Forum grad das gleiche Thema, mit einem identen Usernamen
Hallo Markus, ich kann mich nicht erinnern, woanders dieses Thema gepostet zu haben. Kannst Du mir den Link dazu bitte senden? (Vielleicht habe ich ja eine gespaltene Persönlichkeit....)

Zitat von: markusxy am Dezember 17, 2022, 14:18:19Auch wenn man das macht ist es falsch eine KundenID zu führen.
Das verstehe ich natürlich. Allerdings verwende ich doch gar keine KundenID. Der Kunde wird lediglich mit Namen und Nummer im Auftrag unter der AuftragsID verwendet.
Andreas Irmer
für jede Hilfe dankbar und für Tipps zum Thema Wohnmobil, Wohnwagen auch für jeden erreichbar
  •  

MzKlMu

Hallo,
zeige bitte ,mal das neue Beziehungsbild.

Wie Markus, bin ich auch der Meinung, dass die Kunden in eine extra Tabelle gehören und in den Auftrag nur die KundenID als Fremdschlüssel.
Was er llerdings damit gemeint hat die KundenID sei falsch habe ich auch nicht verstanden.
Gruß
Klaus
  •  

Andreas Irmer

Andreas Irmer
für jede Hilfe dankbar und für Tipps zum Thema Wohnmobil, Wohnwagen auch für jeden erreichbar
  •