Hallo
Hab in einem Formular insg. 4 mal Windows Date and Time Picker Control eingebunden, um die Datum Eingabe zu vereinfachen. Der ausgewählte Wert wird in einem Tabellenfeld mit dem Format Datum/Uhrzeit gespeichert. Das funktioniert auch alles so weit. Allerdings bekomme ich pro Control beim aufrufen des Formulars folgende Fehlermeldung: "An Error occurred in a call to the Windows Date and Time Picker Control". Das nervt und ich will es weghaben. Passiert auch wenn ich auf den Entwurfsmodus und wieder zurückwechsle. Ich habe nichts programmiert, sondern nur aus der Steuerelementetoolbox eingefügt.
Im Forum hab ich bis jetzt nichts gefunden.
Wer kann mir helfen?
Gruß
Kaidani
Naja, die Systemwarnungen kannst du mit:
DoCmd.SetWarnings False
ausschalten, aber damit ist dein Problem nicht wirklich gelöst.
Access macht Fehlermeldungen ja nicht ohne Grund.
Du kannst die Felder auch mit der Now-Funktion oder der Date-Funktion ausfüllen, dann würdest du dir die Fehlermeldung auch sparen.
Stimmt
Das wäre eine Lösung (wo würde ich das hinschreiben, denn die Fehlermeldung kommt direkt beim aufrufen?). Aber beseitigt nicht wirklich das Problem.
Andere Vorschläge?
Gruß
kaidani
Ich hatte meinen Beitrag nochmal editiert. Da stehen weitere Lösungsansätze. Jetzt kommst auf deine VBA-Kenntnisse an.
DoCmd.SetWarnings False
kannst das ganz gut bei Privat Sub Form_Current() reinpacken.
Hab noch ein Zusatz. Das Problem scheint nur zu existieren, wenn sich das Formular alte Daten aus der Tabelle holt. Sprich beim Öffnen des Formulars, bzw. beim Öffnen der Karteikarte und beim Springen zwischen Datensätzen(die Daten stehen in einer Karteikarte). Beim ersten Blick auf die Karteikarte kommt die Fehlermeldung und wenn ich einen Datensatz vorspringe und wieder zurück kommt die Fehlermeldung erneut, aber er hat sich die alten Daten aus der Tabelle geholt. Vorher ist der Tag heute und die Box ist inaktiv gesetzt. Dann wird keine Fehlermeldung für diesen Datensatz mehr ausgegeben.
Verstanden???
Danke
Kaidani
Wie lautet denn die Fehlermeldung?
"An Error occurred in a call to the Windows Date and Time Picker Control"
Da weiß ich leider nicht weiter.
Wenn du eine Alternative brauchst:
Me.Dein_Datumsfeld.DefaultValue = Str(CDbl(Date))
Wie gut sind denn deine Programmierkenntnisse?
Ich wurschtel mich so in den Foren durch, aber nichts fundiertes...
Hmm. Naja.
Gut. Dann gehe ins VisuallBasic und gebe folgenden Code in deinen Hauptformular ein um die Fehlermeldung zu deaktivieren.
Private Sub Form_Current()
DoCmd.SetWarnings False
End Sub
Für die alternative Datumseingabe musst du eine sinnvolle Private Sub suchen.
Form_Current (beim Anzeigen)
Form_BeforeUpdate (vorm aktualisieren) etc
und dort zB:
Private Sub Form_Current()
Me.Dein_Datumsfeld.DefaultValue = Str(CDbl(Date))
End Sub
Aber ein gutes Buch solltest du dir dann doch besorgen.
Danke für die Info. Für ein Buch bin ich zu selten damit beschäftigt. Wozu gibt es Foren.
Ist schon irgendwie komisch. Wenn ich die Registerkarte mit dem Datum aufhab. Kann ich zwischen den Datensätzen springen ohne Probleme. Wenn ich auf einer anderen Registerkarte bin, dann bekomme ich immer die Fehlermeldung.
Scheint echt so, dass er sich auch die aktuellen Daten ziehen will, wenn sie gerade nicht angezeigt werden sollen, die Tabelle sie aber nicht hergibt...
Übrigends, den ersten Tip hab ich umgesetzt. Die Fehlermeldung kommt immer noch!
Jetzt Feierabend. Morgen geht es weiter bei Jugend forscht.
Gruß
kaidani
Hallo,
mit DoCmd.SetWarnings False kann man keine Fehlermeldungen abschalten, sondern nur Warnmeldungen. Das sind 2 paar Stiefel. Fehlermeldungen müssen im VBA Code behandelt werden.
Wobei mir der Fehler nicht klar ist.
Kannst Du mal ein kleines Beispiel machen und hier hochladen?
Hallo
Wie soll ich den ein Beispiel hochladen. Ich kann das Formular hochladen, aber hilft das weiter. Programiert ist nichts dazu. Bitte mal meine Erklärungen durchlesen und expliziter fragen.
Danke
kaidani
Hallo,
ZitatBitte mal meine Erklärungen durchlesen und expliziter fragen.
Bitte etwas gemäßigter antworten, ich (und ander auch) bemühe mich auf rein freiwilliger Basis
Dir zu helfen.
ZitatWie soll ich den ein Beispiel hochladen.
Eine Tabelle und das Formular mit dem Steuerelement. Wenn ich etwas anders wüsste, würde ich es ja sagen.
Hi
Entschuldigung, dass das unfreundlich rüberkam, war nicht so gedacht.
Wie kann ich denn eine Tabelle und ein Formular in das Forum einstellen? Die gesamte Datenbank ist 8 MB groß.
Gruß
kaidani
Hallo,
mache doch einfach eine neue DB mit einer Tabelle und ein Formular dazu. Das Formular sollte natürlich auch den Fehler zeigen.
Dann ist die Datei 5MB groß... Klappt immer noch nicht.
Gruß
kaidani
Hallo,
eine Tabelle mit 5 Datensätzen (mehr braucht es ja nicht) und ein Formular, 5MB, das kann doch nicht sein?
Hast Du die DB schon mal komprimiert (Access Dienstprogramm) ?
Jetzt müsste es klappen.
Danke
Kaidani
[Anhang gelöscht durch Administrator]
Hallo,
und wo und unter welchen Umständen taucht jetzt der fehler auf?
Warum hast Du nicht wenigstens 2-3 Datensätze drin, besonders einen der auch den Fehler bringt?
Jetzt aber...
Wenn Du das Formular aufrufts kommen die ersten Fehlermeldungen. Nun im Formular beim Wechsel der Datensätze. Wenn Du aber im Reiter Schedule bist, passiert nichts.
Gruß
Kaidani
[Anhang gelöscht durch Administrator]
Hallo,
sehr vermutlich (MS spricht davon) handelt es sich um einen Bug, den das OCX hat, wenn es auf einem Reg-Steuerelement platziert ist.
Workaround
(natürlich Deine Namen enstpr. anpassen.
btw: Auf Sonder- und Leerzeichen DRINGEND verzichten, desgleichen reservierte Wörter vermeiden.
ALLE Formate (! Formateigenschaften) für ALLE Felder im Tabellenentwurf entfernen.)
:
Steuerelementinhalt des DTP ("DTPicker5") leeren und Breite des Feldes bis auf den "Button" verschmälern. Ein Textfeld links neben den DTP-"Button" hinzufügen ("txtStartDatum"). Dieses Textfeld an das entspr. Tabellenfeld binden und mittels ähnlicher Prozedur bearbeiten:
Private Sub DTPicker5_Change()
Me!TxtStartDatum = Me!DTPicker5 'bzw. entspr. formatieren: = Format (Me!DTPicker5,"dd.mm.yyyy") , dito unten
End Sub
oder
Private Sub DTPicker5_CloseUp()
Me!TxtStartDatum = Me!DTPicker5
End Sub