PDA

Vollständige Version anzeigen : Mehrere Datensätze auf einmal anfügen


MGEHRI
19.04.2011, 14:14
Hallo zusammen

Ich habe folgendes Problem: Ich führe eine Datenbank, auf welcher Mitarbeiter ihre Stunden erfassen, welche sie dann einzelnen Projekten zuordnen. Im Normalfall sind das pro Tag ein oder zwei Einträge.

Die Tabelle enthält:
ID (Autowert), SAP-Nr., Datum, Netzplan, Vorgang, Stunden

Wenn jetzt ein Mitarbeiter Urlaub hat (z.B. während 14 Tagen), muss er relativ mühsam 14 einzelne Einträge in die Datenbank vornehmen.

Ideal wäre, wenn der Mitarbeiter auf einen Button klicken könnte, dann mit einer Datumseingabe von bis für mehrere Tage je einen Eintrag erstellen könnte.

Ich hoffe, ich habe mich verständlich ausdrücken können ;-)

Vielen Dank.

Thomas Möller
19.04.2011, 14:17
Hallo!

Ideal wäre, wenn der Mitarbeiter auf einen Button klicken könnte, dann mit einer Datumseingabe von bis für mehrere Tage je einen Eintrag erstellen könnte.

Nur als Idee: Wie wäre es denn mit einem Button mit der Aufschrift "Letzten Eintrag duplizieren". Wenn man darauf klickt wird einfach eine Kopie des letzten DS für den nächsten Tag angelegt. Bei 14 Tagen Urlaub müsste man dann 9 mal draufklicken.

CU

MGEHRI
19.04.2011, 14:22
Daran habe ich auch schon gedacht und das versucht so umzusetzen:



DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append

Nur bekomme ich dann eine Fehlermeldung:
"die Änderungen konnte nicht vorgenommen werden, da Index, Pirmärschlüssel oder die Beziehung mehrfach vorkommende Werte enthalten würde..."

Liegt wohl irgendwie am Primärschlüssel in der Tabelle, den ich als Autowert definiert habe.

Zudem wär's natürlich nett, wenn dann gleich das Datum um +1 geändert würde...

Danke.

Gruss
Marcel

Wolfgang Biedermann
19.04.2011, 14:30
Hallo Marcel,

Ideal wäre, wenn der Mitarbeiter auf einen Button klicken könnte, dann mit einer Datumseingabe von bis für mehrere Tage je einen Eintrag erstellen könnte.


Ich habe so etwas ähnliches mal mit dem "MonthCalendar" von Lebans gelöst (siehe hier http://www.lebans.com/monthcalendar.htm)

Ist zwar nicht nur ein Buttonclick, aber man kann einen beliebigen Zeitraum auf dem Kalender markieren (Anfangsdatum/Enddatum) und den dann in Tabellen/Textfelder übernehmen.

Gruß
:) Wolfgang

MGEHRI
19.04.2011, 14:41
Hallo Wolfgang

Danke für den Link. Sieht gut aus, vielleicht kann ich das auch noch einbauen.

Wobei das wohl mein Problem nicht lösen wird. Ich müsste ja aus der Bestimmung des Zeitraums mehrere Datensätze mit den jeweiligen Tagesdaten erstellen können.

Die Idee von Thomas, den letzten Datensatz zu duplizieren, wäre sicher ein einfache, aber gute Lösung. Nur, wie bekomme ich diese Fehlermeldung weg?

Gruss
Marcel

Atrus2711
19.04.2011, 15:09
Hi,

mach das mit einem recordset.

Schema:

Dim dteLauf as Date
Dim rst as dao.Recordset
Set rst = CurrentDB.Openrecordset("Tabelle")
For dteLauf = Me!txtDatumVon To Me!txtDatumBis
with rst
.AddNew
!Datumsfeld = dteLauf
'weitere Felder analog
.Update
end with
next dteLauf

MGEHRI
19.04.2011, 15:45
Hi Martin

Das klappt ja gar nicht schlecht! Jetzt habe ich noch ein kleines Detail, dass noch nicht funktioniert:

Code:


Dim dteLauf As Date
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("Einträge")
txtDatumVon = InputBox("von Datum", "Ferien")
txtdatumbis = InputBox("bis Datum", "Ferien")
For dteLauf = txtDatumVon To txtdatumbis
With rst
.AddNew
!Datum = dteLauf
!Netzplan = 1
!Vorgang = 1
!Stunden = 8
'weitere Felder analog
.Update
End With
Next dteLauf


Für das Feld "SAP-Nr" sollte er den Wert aus dem Hauptformular übernehmen. Wie bekomme ich das hin?

Danke.

Marcel

Atrus2711
19.04.2011, 15:54
With rst
'...
!Zielfeld = Me.Parent!txtTextfeldWoDieNummerDrinsteht
'...
End with

MGEHRI
19.04.2011, 15:57
Fantastisch! Funktioniert einwandfrei.

Vielen Dank für die rasche Lösung.

Gruss
Marcel