Schichtplan mit Abfrage
Hallo!
Ich möchte gerne – wohl am besten im Access – einen Wochenplan bzw. Schichtplan erstellen. Dabei sollte zum einen das jeweilige Datum, Wochentag der Kalenderwoche von Montag bis Freitag automatisch in einer Vorlage eingetragen werden. Zum anderen soll der Schichtplan die Möglichkeit haben, Abwesenheiten, Urlaubstage global einzutragen. Ich möchte also nicht jede Woche händisch die jeweiligen Einträge durchgehen, sondern NAME und DATUM VON DATUM BIS automatisch als abwesend gesetzt haben.
Hat jemand eine Idee bzw. einen Einstieg, wie ich so etwas angehen kann?
Vielen Dank!
Chris
Antwort schreiben
Antwort 1 von Teddy7 vom 17.12.2019, 16:54 Options
Hi Chris !
Das ist nicht so ganz trivial.
Problem: mehr als 255 Felder pro Formular bzw. pro Datensatz ist nicht drin.
Ich würde eine Tabelle machen, in der Name, Datum, Tätigkeit steht.
Dann würde ich eine zweite Tabelle machen mit Name, Tätigkeit Tag1, Tätigkeit Tag2, usw
Diese 2. Tabelle würde ich mit VBA-Programmierung unmittelbar vor der Anzeige füllen - sie also nur temporär führen.
Blättert der User also auf die nächste Woche, dann wird erst wieder die Tabelle gefüllt und dann angezeigt.
Gruß
Teddy
Antwort 2 von Chrisibert vom 18.12.2019, 11:39 Options
Lieber Teddy,
vielen herzlichen Dank für Deine Antwort. Kannst Du mir noch einen Fingerzeig für die richtige VBA-Programmierung geben, oder einen Link zum genaueren Nachlesen...
Gruß
Chris
Antwort 3 von Teddy7 vom 18.12.2019, 13:08 Options
Natürlich gibts da Bücher drüber, aber das ist nix für Anfänger.
Meine Empfehlung wäre, dass Du Dir den Code von einem Profi schreiben läßt. Das ist gar nicht so teuer wie man meint.
Gruß
Teddy
Antwort 4 von Teddy7 vom 19.12.2019, 13:08 Options
Hier ein paar zusätzliche Hinweise:
Den Zugriff zu einer Tabelle definiert man so:
Dim ttab1 As DAO.Recordset
Set ttab1 = CurrentDb.OpenRecordset("Select * from tblKunde", dbOpenDynaset)
Dabei nicht vergessen einen Verweis auf Microsoft DAO zu setzen.
Die Tabelle liest man dann so:
dim ktab1 as string
ktab1 = "KundenNr = " & kunde
ttab1.FindFirst ktab1
wenn´s mehrere Sätze sind findet man den nächsten mit
ttab1.findnext
einen neuen Datensatz anlegen:
ttab1.addnew
einen gelesenen Datensatz verändern:
ttab1.edit
ttab1!kundenname = "Hugo"
ttab1.update
zum Cshluß nicht vergessen die Tabelle zu schließen und den Platz wieder freizugeben:
ttab1.Close
Set ttab1 = Nothing
Viel Spaß
Teddy
Antwort 5 von Chrisibert vom 14.02.2020, 15:03 Options
Hallo Teddy!
Komme erst jetzt dazu mich zu bedanken! Dankeschön für Deine Hinweise!