Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: PlooserX am Juni 05, 2011, 17:00:06

Titel: Kalenderwoche Datum zuordnen.
Beitrag von: PlooserX am Juni 05, 2011, 17:00:06
Moin Leute,

ich bin ein absoluter Neuling in dem Gebiet etwas zu programmieren in Access, wir haben damit in der Schule mal angefangen, aber unser Lehrer schien auch manchmal ein wenig überfordert gewesen zu sein.

Also nun zu meinem Vorhaben.

Ich habe hier in meinem Access Programm ein Unterformular, in einem normalen Formular, wo später einmal eine Buchung für zB ein Ferienhaus eingetragen werden soll. Dieses Ferienhaus kann Kalenderwochenweiße gebucht werden. Nun möchte ich aber immer noch das Datum VON und BIS eintragen. Und hier soll es nur möglich sein das passende Datum einzutragen. D.h. in der 2. KW kein Datum irgendwie aus dem April oder so.

Ist das irgendwie möglich???


Wäre sehr Dankbar wenn mir da vllt einer helfen kann, wenn es nicht zuviele Umstände macht.


BEsten Gruß Plooser
Titel: Re: Kalenderwoche Datum zuordnen.
Beitrag von: database am Juni 05, 2011, 17:49:23
Hallo,

ZitatDieses Ferienhaus kann Kalenderwochenweiße gebucht werden. Nun möchte ich aber immer noch das Datum VON und BIS eintragen. Und hier soll es nur möglich sein das passende Datum einzutragen. D.h. in der 2. KW kein Datum irgendwie aus dem April oder so.

Sorry, aber aus diesem Konklomerat werde ich nicht ganz schlau...

Eine kalendewochenweise Buchung OK - nehme also an eine Buchung beispielsweise für die KW 29 und 30
Du möchtest immer noch das Datum VON und BIS eintragen - auch OK, aus diesen Einträgen könnte auch die KW ermittelt werden.

ZitatUnd hier soll es nur möglich sein das passende Datum einzutragen. D.h. in der 2. KW kein Datum irgendwie aus dem April oder so.
DAS mußt du aber bitteschön genauer erklären.
WO willst du WAS eintragen und WAS willst du NICHT WO eintragen  ???
Titel: Re: Kalenderwoche Datum zuordnen.
Beitrag von: PlooserX am Juni 05, 2011, 18:40:29
Also es ist so,

in diesem Unterformular hab ich in der

ersten Spalte die ID,
zweite Spalte KW 1-52,
dritte Spalte Datum von,
vierte Spalte Datum bis,

Das Unterformular bezieht sich auf eine Taballe, die ich selber erstellt habe.


Nun sollte dieses Ferienhaus für eine Kalenderwoche buchbar sein. So war mal der Auftrag meines Lehrers. Da es aber Leute gibt, die möglichwerweise nur von Mo. bis Do. da sind, habe ich die Option eingebaut das Datum VON und BIS einzutragen, um möglicherweiße die Reinigungskraft nicht umsonst hinzuschicken um zu putzen, wo aber nichts zu putzen ist.

Nun besteht ja das Problem, dass der Bediener später z.B. für die KW 1 ein Datum einträgt das garnicht in der KW 1 liegt!
Und genau dies möchte ich unterbinden. Es soll dann eine Meldung auftauchen in der steht, dass das Datum außerhalb der KW liegt.

Ich hoffe ich konnte mein Vorhaben ein wenig klarer definieren.

Gruß Plooser
Titel: Re: Kalenderwoche Datum zuordnen.
Beitrag von: DF6GL am Juni 05, 2011, 19:33:21
Hallo,

entferne die Spalte "KW" (und evtl. eine "Jahres-Spalte")  aus der Tabelle und benutze nur "DatumVon" und "DatumBis".


In einem Formular befindet sich zusätzlich zu den Textfeldern, die an die Tabellenfelder gebunden sind, zwei weitere Textfelder "txtKW" und "txtJahr"

In der Ereignisprozedur "Nach Aktualisierung" des Textfelder txtKW steht folgender Code:

Sub txtKW_Afterupdate()
If isnull(Me!txtJahr) Then
Msgbox "Zuerst Jahr eingeben"
Me!txtJahr.Setfocus
Exit Sub
End If

Me!DatumVon= DateSerial(Me!txtJahr 1, 4) + Me!txtKW * 7 - 7 - DateSerial(Me!txtJahr, 1, 2) Mod 7
Me!DatumBis = Me!DatumVon + 5    '  DatumBis == Samstag

End Sub



(siehe auch http://www.donkarl.com/?FAQ2.9)




Damit werden die beide Datumsfelder mit dem entspr. Werten gefüllt.  



In den Ereignisprozeduren "Vor Aktualisierung" der Felder "DatumVon" und "DatumNach" kann dann noch überprüft werden, ob ein manuell eingetragenes Datum in der angegebenen KW liegt:

Sub DatumVon_BeforeUpdate(Cancel as Integer)
If isnull(Me!DatumVon)  then
Msgbox "Datum fehlt"
Cancel=true
Exit Sub
End If
If DatePart("ww", Me!DatumVon, 2, 2) <> Me!txtKW  Then
Msgbox "Datum nicht in Kalenderwoche"
Cancel =true
End If
End Sub


Sub DatumBis_BeforeUpdate(Cancel as Integer)
If isnull(Me!DatumBis)  then
Msgbox "Datum fehlt"
Cancel=true
Exit Sub
End If
If DatePart("ww", Me!DatumBis, 2, 2) <> Me!txtKW  Then
Msgbox "Datum nicht in Kalenderwoche"
Cancel =true
End If
End Sub




(unchecked)


Evtl. ist bei der Berechnung der KW die deutsche KW-Berechnungsvorschrift zu berücksichtigen  (Din 1355)
Titel: Re: Kalenderwoche Datum zuordnen.
Beitrag von: PlooserX am Juni 05, 2011, 19:48:20
Besten Dank erstmal, werds morgen gleich mal austesten!!!

DANKE