ich habe bei Access 2007 für das Datumsfeld "VonDat"
\\\
00.00.00;0;_
///
als Eingabeformat.
Im Code steht ein:
\\\
Me.VonDat.ShowDatePicker = 2
///
Wenn ich über die Tastatur ein Datum eingebe, ist alles wie gewollt.
Gebe ich jedoch z.B. das Datum 19.12.2010 über den DatePicker ein,
erhalte ich als Datumswert den 19.12.2020.
Also nimmt er vom DatePicker für die Jahreszahl nur die ersten beiden
Ziffern. Was dann ein falsches Datum ergibt.
Leider ist an der Stelle nicht viel Platz, sonst würde ich als
Eingabeformat einfach
\\\
00.00.0099;0;_
///
nehmen und gut wäre es.
Hat jemand eine andere Idee?
--
MfG - Lupus Goebel
Der Sumpf- Morasthobbybastler und Anfaenger mit
Wissensdurst (http://www.lupusdw.de http://foto.lupusdw.de)
Urlaub macht man in Irland: http://www.eaglesnest-bb.com/
> Hat jemand eine andere Idee?
Ja, verzichte auf den MS-Datepicker und nimm einen der direkt im Code
angelegt ist. Z.B. habe ich selbst auch mal so ein Teil entwickelt:
www.accessblog.de
Gruß Andreas
Am 13.12.2010 08:42 schrieb Andreas Vogt:
> Hallo,
> wichtig wäre zu wissen was der DatePicker liefert. Also mal ein Haltepunkt
> setzen und debuggen.
Habe ich doch geschrieben: Er liefert das richtige Datum, aber es passt
nicht in das Eingabeformat.
>> 00.00.00;0;_
>> als Eingabeformat.
> Ich würde Eingabeformat ganz weg lassen und bei before Update prüfen ob
> korrekt.
Mit dem Eingabeformat mache ich es dem Anwender einfacher das Datum
einzugeben, er muss da kein Punkt setzten.
>> Im Code steht ein:
>> Me.VonDat.ShowDatePicker = 2
> Das verstehe ich nicht was das bewirken soll.
Siehe auch: MID: <8mhs5f...@mid.individual.net>
Wenn dem Feld ein Eingabeformat vorgegeben wird, gibt es keinen
DatePicker. Setze ich jedoch den Wert bei ShowDatePicker auf 2, wird er
dennoch angezeigt.
>> Hat jemand eine andere Idee?
> Ja, verzichte auf den MS-Datepicker und nimm einen der direkt im Code
> angelegt ist. Z.B. habe ich selbst auch mal so ein Teil entwickelt:
> www.accessblog.de
Du meinst das da: http://www.accessblog.de/archives/54
Mit Sicherheit eine gute Lösung und auch danke dafür. Ich habe jedoch
das Problem mit der Datumseingabe an unterschiedlichen Formularen sowie
an Unterformularen und den dazu gehörigen Hauptformularen. Da wäre mir
eine Lösung mit dem DatePicker lieber, müsste ich nicht so viel
Schreiben ;-) so hoffe ich ....
Lupus Goebel schrieb:
> Me.VonDat.ShowDatePicker = 2
> Wenn ich über die Tastatur ein Datum eingebe, ist alles wie gewollt.
> Gebe ich jedoch z.B. das Datum 19.12.2010 über den DatePicker ein,
> erhalte ich als Datumswert den 19.12.2020.
>
> Also nimmt er vom DatePicker für die Jahreszahl nur die ersten beiden
> Ziffern. Was dann ein falsches Datum ergibt.
> Leider ist an der Stelle nicht viel Platz, sonst würde ich als
> Eingabeformat einfach
> \\\
> 00.00.0099;0;_
> ///
> nehmen und gut wäre es.
Eventuell könnte für die Eingabe der Platz größer gemacht werden.
Das Anzeigeformat kann ja dann immer noch mit zweistelliger Jahreszahl
sein.
Damit der DatePicker ein Datum mit einer 2-stelligen Jahreszahl
liefert, müsste das Datumformat in Windows auch mit einer 2-stelligen
Jahreszahl eingestellt werden. Das könnte man eventuell per
API-Funktionen durchführen. Ich bin aber kein besonderer Freund von
Änderungen in den Windowseinstellungen durch Anwendungsprogramme.
BTW:
Das von dir beschriebene Problem ist vermutlich der Grund, warum der
DatePicker standardmäßig deaktiviert wird, wenn ein Eingabeformat
eingestellt wird. ;-)
mfg
Josef
Am 13.12.2010 10:36 schrieb Josef Poetzl:
> Hallo!
>
> Lupus Goebel schrieb:
>> Me.VonDat.ShowDatePicker = 2
>> Wenn ich über die Tastatur ein Datum eingebe, ist alles wie gewollt.
>> Gebe ich jedoch z.B. das Datum 19.12.2010 über den DatePicker ein,
>> erhalte ich als Datumswert den 19.12.2020.
>>
>> Also nimmt er vom DatePicker für die Jahreszahl nur die ersten beiden
>> Ziffern. Was dann ein falsches Datum ergibt.
>> Leider ist an der Stelle nicht viel Platz, sonst würde ich als
>> Eingabeformat einfach
>> \\\
>> 00.00.0099;0;_
>> ///
>> nehmen und gut wäre es.
>
> Eventuell könnte für die Eingabe der Platz größer gemacht werden.
> Das Anzeigeformat kann ja dann immer noch mit zweistelliger Jahreszahl
> sein.
Leider nicht, das Form ist sowas von voll.
> Damit der DatePicker ein Datum mit einer 2-stelligen Jahreszahl
> liefert, müsste das Datumformat in Windows auch mit einer 2-stelligen
> Jahreszahl eingestellt werden. Das könnte man eventuell per
> API-Funktionen durchführen. Ich bin aber kein besonderer Freund von
> Änderungen in den Windowseinstellungen durch Anwendungsprogramme.
Neeneenee, ich auch nicht.
> BTW:
> Das von dir beschriebene Problem ist vermutlich der Grund, warum der
> DatePicker standardmäßig deaktiviert wird, wenn ein Eingabeformat
> eingestellt wird. ;-)
Das war auch mein erster Gedanke und wird wohl auch der letzte hier sein ;-)
Auch Dir ein Danke.
Lupus Goebel schrieb:
> Am 13.12.2010 10:36 schrieb Josef Poetzl:
>> Eventuell könnte für die Eingabe der Platz größer gemacht werden.
>> Das Anzeigeformat kann ja dann immer noch mit zweistelliger Jahreszahl
>> sein.
> Leider nicht, das Form ist sowas von voll.
Ist das ein Zeichen dafür, dass aufgeräumt werden sollte? ;-)
Zur Not:
Wäre es tragisch, wenn während der Eingabe das Textfeld kurzzeitig
etwas größer werden würde, oder während der Eingabe der Text im
Textfeld nicht vollständig sichtbar ist?
mfg
Josef
Am 13.12.2010 12:09 schrieb Josef Poetzl:
> Hallo!
>
> Lupus Goebel schrieb:
>> Am 13.12.2010 10:36 schrieb Josef Poetzl:
>>> Eventuell könnte für die Eingabe der Platz größer gemacht
>>> werden. Das Anzeigeformat kann ja dann immer noch mit
>>> zweistelliger Jahreszahl sein.
>> Leider nicht, das Form ist sowas von voll.
>
> Ist das ein Zeichen dafür, dass aufgeräumt werden sollte? ;-)
Ja, sicher, aber bitte verrate es nicht weiter, sonnst wollen "die" das
am Ende noch.
> Zur Not: Wäre es tragisch, wenn während der Eingabe das Textfeld
> kurzzeitig etwas größer werden würde, oder während der Eingabe der
> Text im Textfeld nicht vollständig sichtbar ist?
Nö, wäre eine Möglichkeit. Geht das in einer ACCDE Datei denn?
*Jedoch:*
Habe mich nun in <http://www.accessblog.de/archives/54/> etwas
eingearbeitet und versuche im nächsten Schritt es von x-beliebiger
Stelle aufrufen zu können.
Warum verwendest Du eigentlich nicht das
Microsoft Calendar Control 11.0 (in zB. E:\MS_Office_11\OFFICE11\MSCAL.OCX)
oder höher?
Möglicherweise stellen sich dort Deine Probleme gar nicht.
Wolfgang
Lupus Goebel schrieb:
> Am 13.12.2010 12:09 schrieb Josef Poetzl:
>> Zur Not: Wäre es tragisch, wenn während der Eingabe das Textfeld
>> kurzzeitig etwas größer werden würde, oder während der Eingabe der
>> Text im Textfeld nicht vollständig sichtbar ist?
>
> Nö, wäre eine Möglichkeit. Geht das in einer ACCDE Datei denn?
Du kannst in einer accde nur keine neuen Steuerelemente einfügen.
Die Größe oder Position kannst du aber verändern.
Beispiel:
Private Sub DeinSteuerelement_GotFocus()
With Me.DeinSteuerelement
.Width = .Width * 1.2
.Format = "dd\.mm\.yyyy"
End With
End Sub
Private Sub DeinSteuerelement_LostFocus()
With Me.DeinSteuerelement
.Width = .Width / 1.2
.Format = "dd\.mm\.yy"
End With
End Sub
mfg
Josef
Am 13.12.2010 12:53 schrieb Wolfgang Badura:
>> Also nimmt er vom DatePicker für die Jahreszahl nur die ersten beiden
>> Ziffern. Was dann ein falsches Datum ergibt.
>
> Warum verwendest Du eigentlich nicht das
> Microsoft Calendar Control 11.0 (in zB. E:\MS_Office_11\OFFICE11\MSCAL.OCX)
> oder höher?
> Möglicherweise stellen sich dort Deine Probleme gar nicht.
Aus irgendeinem Grunde hatte ich es in den Vorgängerversionen nicht
genommen. Ich meine da gab es immer wieder mal irgendwelche
Schwierigkeiten, oder habe ich da was falsches in Erinnerung?
Ansonsten, guter Plan :-)
Andreas
Wolfgang Badura schrieb:
>>> Microsoft Calendar Control 11.0 (in zB.
>>> E:\MS_Office_11\OFFICE11\MSCAL.OCX)
>>> oder höher?
> Das Kalendersteuerelement ist Bestandteil von Office.
... zumindest bis Office 2007. In Office 2010 ist es nicht mehr
enthalten.
mfg
Josef
>> Das Kalendersteuerelement ist Bestandteil von Office.
>
> ... zumindest bis Office 2007. In Office 2010 ist es nicht mehr
> enthalten.
Und es gibt auch keinen Ersatz?
Kann man es aus Office2003 noch weiterverwenden?
Typisch Microsoft!
Danke, Wolfgang
Wolfgang Badura schrieb:
> Und es gibt auch keinen Ersatz?
Der Ersatz ist die seit Ac07 eingebaute DatePicker-Funktionalität (ist
kein ActiveX!) bei Textfeldern, die Lupus im ersten Beitrag erwähnte.
Für die Auswahl von Datumswerten, die in Textfeldern dargestellt
werden, finde ich das auch ganz gut. Eine Kalenderblatt-Darstellung
ist damit aber nicht möglich, da die Kalenderansicht nur während der
Datumsauswahl zur Verfügung steht und nach der Auswahl nicht mehr
sichtbar ist.
> Kann man es aus Office2003 noch weiterverwenden?
MSCAL.ocx ist ein normales ActiveX, das kannst du natürlich auch unter
Ac2010 verwenden - zumindest wenn du das Recht hast es zu nutzen bzw.
zu verteilen und die dll registriert wurde (regsvr32).
mfg
Josef
Vielen Dank
Wolfgang