Hallo ich weis das über DS duplizieren schon einiges geschrieben wurde...
Nur ich habe hier eine allgemeine Frage..
Zum Beispiel arbeiten an einem Tag mehrere Mitarbeiter an einem Objekt.
Es können hier schon einige verschiedene Objekte enthalten sein und damit ich nicht immer für alle Objekte das selbe in einem formular eingeben muss stelle ich mir die Frage wie würdet Ihr so etwas am geschicktesten Lösen?
Also zum Beispiel
Datum Von Bis Tätigkeit Objekt Mitarbeiter
01.02.2016 07:30 07:45 Laden Huber KG, Haus 19 am Berg Franz Huber
02.02.2016 07:45 08:45 Fahrt Huber KG, Haus 19 am Berg Franz Huber, Uli Mayer
02.02.2016 08:45 11:30 Objekt Huber KG, Haus 19 am Berg Franz Huber, Uli Mayer
02.02.2016 11:30 12:00 Pause Huber KG, Haus 19 am Berg Franz Huber, Uli Mayer
02.02.2016 12:00 12:20 Fahrt Maier OG, Zuhause 5 Franz Huber, Uli Mayer
02.02.2016 12:20 14:00 Objekt Maier OG, Zuhause 5 Franz Huber, Uli Mayer
02.02.2016 14:00 14:30 Fahrt Maier OG, Zuhause 5 Franz Huber, Uli Mayer
02.02.2016 14:30 15:45 Objekt Lara Freund, Wohnung 38 Franz Huber, Uli Mayer
02.02.2016 15:45 16:00 Fahrt Lara Freund, Wohnung 38 Franz Huber, Uli Mayer
Oben nur ein Beispiel welche Informationen benötigt werden..
Nun muss ich für alle Tätigkeiten und jeden Mitarbeiter seperat einen Eintrag machen...
Geht das etwas geschickter oder mit weniger Aufwand..?
Also vielleicht so in der Richtung für einen Mitarbeiter den Tagesbericht ausfüllen und dann vielleicht gewisse oder alle Datensätze markieren und nur den Mitarbeiter ändern?
Würde mich um Vorschläge freuen!
LG
Albert
Hallo,
wenn 2 Mitarbeiter in einem Feld stehen, ist das schon mal falsch.
Tätigkeiten werden je Mitarbeiter in je einem Datensatz erfasst.
Hallo Klaus,
na das hab ich ja auch nicht! War nur ein Beispiel...
Die DB ist schon so aufgebaut das nur ein Mitarbeiter drinnen steht.
Nur gibt es da eine gute oder schnelle Lösung wie man so etwas realisieren kann oder muss oder sollte man einfach nur alles Eintragen.. :(
LG
Hallo,
Zitatna das hab ich ja auch nicht! War nur ein Beispiel...
ich werde nie verstehen, warum man Beispieldaten zeigt die nicht der Realität entsprechen. Man legt doch falsche Fährten, dass muss einem doch klar sein.
Was willst Du jetzt von den gezeigten Beispieldaten kopieren ?
Für eine Beschreibung von zeitlich begrenzten Handlungsabläufen mit möglicherweise mehreren Beteiligten, liegt eine klassische m:n-Beziehung vor, die über 3 Tabellen aufgelöst wird:
Handlung 1=n BeteiligteAnHandlung n=1 Mitarbeiter
Hallo,
@Klaus! Tut mir sehr leid das stimmt schon das hätte mir eigentlich klar sein sollen!
War wohl etwas zu faul um es besser oder ordentlich zu schreiben!
Na einen Datensatz mit Datum/ Von / Bis / Objekt/ Tätigkeit
Also zum Beipiel Ein Tagesbericht würde ja dann so aussehen
Datum - Mitarbeiter -Von - Bis- Tätigkeit - Objekt - Mitarbeiter
1.2.16 - Huber - 7:30 - 7:45 - Laden - Kirchner Glasbau - Gerhard Sorglos
1.2.16 - XY - 7:45 - 8:00 - Fahrt - Kirchner Glasbau - Gerhard Sorglos
usw.
Nun nehmen wir an ein weiterer Mitarbeiter arbeitet von dem zweiten DS die exat selben Leistungen und Objekte ..
Aber das Laden übernimmt nur Herr Sorglos..
Jetzt wollte ich wissen habe auch die n:m Beziehungen!
Es geht mir eigentlich nur um nicht immer genau die selben Daten also zweimal eintippen zu müssen..
Vielleicht ein Formular mit Checkboxen wo ich all die Daten oder Datensätze anklicke die kopiert werden sollen..
Und das diese dann automatisch in die Datenbank eingetragen werden.
Hab auch schon mit Klassen experimentiert nicht konkret für diesen Zweck aber würde das in einer Klasse besser funktionieren?
Wie man sieht sind oder kommen da schon einige Datensätze zusammen pro Woche deshalb dachte ich an eine bessere Lösung.
@Lachtaube.. ja ich hab schon die n:m Beziehung in der DB.. funktioniert auch alles aber eben nur manuel..
Schönen Gruß
Hallo,
wieso gibt es 2x Mitarbeiter in jedem Datensatz, was macht da der Huber (bzw. XY) und was macht dann der Sorglos ?
Hallo Albert,
nur ein paar Ideen.
Füge in dein Formular doch einfach ein Kombifeld ein, das ein paar wichtige Daten darstellt (Datensatz-Id, Kunde, Datum etc.) mit Spaltenbreiten 0;4;2 cm, absteigend nach Datum sortiert (jüngstes Datum oben).
Im Bei-Änderung-Event des Kombifelds könntest du dann den betreffenden Datensatz anhand der Id laden und beliebige/sinnvolle Daten daraus dem aktuellen Datensatz im Formular zuweisen.
Ungefähr so (Luftcode):
sql="select * from datentabelle where id =" & combobox(selecteditem,0)
adoRs.open... (readonly)
(Fehlerhandling)
Kunde = adoRs!Kunde
Mitarbeiter = adoRs!Mitarbeiter
...
adors.close
Oder in allgemeiner Prosa:
1. selektiere einen DS mit Hilfe eines mehrspaltigen Kombifelds (kann ungebunden sein)
2. lade den selektierten DS mit ADO oder DAO per VBA
3. weise gewünschten/sinnvollen Formularfeldern Werte aus dem selekierten DS zu
ODER:
Hole die bzw. ausgewählte Daten des vorangehenden Datensatzes per VBA in den neuen Datensatz, sofern er wirklich neu ist (Form_current-Event, prüfen auf neuen DS).
Mehrere Rapport-Datensätze einfach zu erfassen wäre wohl etwas schwierig, weil man z. B. zunächst Dummy-Datensätze in passender Anzahl anlegen müsste, um dann anschließend die Datensätze individuell zu ändern, was in Unterformularen schwierig (wenn nicht unmöglich) wird.
Deshalb die Idee, in einem neuen DS einfach die Daten des vorangegangenen DS als Vorgabe darzustellen. Das wäre wohl recht einfach hinzubekommen und wäre vermutlich auch eine ergonomisch sinnvolle Lösung, da sich einige Daten längere Zeit nicht ändern (Kunde, Mitarbeiter, Datum).
Es kommt darauf an, in welcher Form du die Rapports vorliegen hast (vermutlich natürlich je Mitarbeiter).
Ein zusätzlicher Button "Alle Felder löschen" könnte weiter helfen.
Ich hoffe, meine Gedanken helfen dir etwas auf die Sprünge...
Gruß,
crystal
Hallo Crystal,
vielen Dank für Deine Antwort!
Ich muss es mir noch genauer ansehen wollte mich aber schon mal bedanken und werde mich dann wieder melden :-)
Lg
Albert
Moin,
Also, ich weiss ja nicht um wie viele Felder es geht, und ob die Daten nur aus
dem vorigen DS kopiert werden sollen, aber ich würde wahrscheinlich alle
relevanten Felder als Kombis anlegen (gebunden), und diese jeweils mit allen
vorigen Einträgen in dieses Feld bestücken (distinct).
gruss ekkehard