Hallo Andreas,
du benötigst also ein Formular, keinen Bericht, ok. Wenn ich dich richtig verstehe, sind die Kalenderwochenangaben beliebig aber fest für die Darstellung. Die Zeilen "Prognose", "Bedarf", "bekannt", "neu" und "offene Bedarfsmenge" reine Anzeigewerte, also nicht in diesem Formular gefüllt werden sollen. Die Zeile "neue Einplanung" soll als Eingabefelder bereit gestellt werden.
Falls das so ist, würde ich folgendermaßen vorgehen:
1. Du erstellst ein Endlosformular mit der Datenherkunft einer Zwischentabelle für die Editierfelder für die "neue Einplanung", als auch für die "Read-Only"-Felder jeweils mit generischen Kalenderwochenangaben und Wochentagen, also z.B. PROGNOSE_1_1, PROGNOSE_1_2 ... PROGNOSE_1_5, PROGNOSE_2_1 ... PROGNOSE_12_5 sowie alle anderen Werte und natürlich der Materialnummer.
2. Die Kalenderwochenüberschriften sind in 12 Textfeldern (CAPTURE-Eigenschaft) beim öffnen des Formulars per VBA zu setzen, entsprechend deiner Logik, z.B. heute ist KW17, dann belegst du die Felder mit 18/2001 - 30/2011 vor.
3. Beim Öffnen des Formulars füllst du die Zwischentabelle mit den Werten aus den entsprechenden Wochen per VBA, wo du bei der KW eine berechnung vornehmen musst. also so was wie (VBA-Ansatz, entschuldige evtl. Syntaxfehler, da nur kurz runter geschrieben):
....
while not Materialrec.eof
' evtl. Filterung der Quell-Recordsets auf Materialnummer
rec.addnew
for iDatum = firstdayOfNextWeek to firstdayOfNextWeek +12*7
kw =Format(iDatum, "ww", vbMonday, vbFirstFourDays)
y = year(iDatum)
if kw <> kwSave then
kwIndex = kwIndex +1
kwSave = kw
end if
dow = Weekday(Date, vbMonday)
if dow <=5
wert = ... 'aus deinen Tabellen ermitteln mit kw und y oder wie auch immer
rec("PROGNOSE_" & kw-aktuelleKW & "_" & dow) ) = wert
end if
next
next
rec.update
Materialrec.movenext
wend
....
4. Mit einem Speicherbutton (oder beim Schließen des Formulars) kannst du dann den umgekehrten Weg gehen und die Werte aus der Zwischentabelle per VBA (Cursor) in deine Originaltabellen überträgst und den Tag aus der KW und dem Wochentag berechnest.
Wenn du 12 Wochen im Voraus die Planzahlen eingibst, und du das wöchentlich machst, kann es sein (je nach deiner Logik), dass du die vorherigen Daten zunächst per SQL-Befehl löschen musst.
Ich hoffe, dieser Ansatz (bestimmt einer von vielen) hilft dir weiter, sonst melde dich bitte mit konkreteren Angaben. Da ich den Aufbau deiner Quelltabellen nicht kenne, bin ich hiermit mit dem Tipp am Ende ;-)
Gruß
Ralf