Reinhold Geschrieben 5. März 2009 Geschrieben 5. März 2009 Moin ihr Lieben, ich stolpere gerade über ein höchst merkwürdiges Phänomen und wüsste gerne woran das liegt. Es geht um einen selbstgehäkelten Datepicker um das unsägliche Kalender-Control zu umgehen. Ich habe in einer Access-2000-mdb ein Modul mit folgendem Inhalt: Option Compare Database Public DatePickerAntwort As Variant Public Declare Function GetWindowLong Lib "user32" _ Alias "GetWindowLongA" ( _ ByVal hwnd As Long, _ ByVal nIndex As Long) As Long Public Declare Function SetWindowLong Lib "user32" _ Alias "SetWindowLongA" ( _ ByVal hwnd As Long, _ ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long Public Const GWL_STYLE = (-16) Public Const WS_CAPTION = &HC00000 Im Formular, das den Datepicker darstellt habe ich u.a. folgenden Code, der bei Aufruf des Formulars dessen Titelleiste ausschaltet. Private Sub Form_Load() Dim nStyle As Long With Me ' aktuellen Fensterstil emitteln nStyle = GetWindowLong(.hwnd, GWL_STYLE) ' Titelleiste entfernen nStyle = nStyle And Not WS_CAPTION ' Neuen Fensterstil setzen SetWindowLong .hwnd, GWL_STYLE, nStyle End With End Sub Auf meinem Rechner funktioniert das alles einwandfrei, aber von 2 anderen Plätzen passiert folgendes: Öffnet man das Formular direkt aus dem Datenbankmenü ist alles in Ordnung, öffnet man es aber via Doppelklick auf ein Datumsfeld in einem anderen Formular wird die Titelleiste trotzdem angezeigt. If Me.ActiveControl.Enabled And Not Me.ActiveControl.Locked And Me.AllowEdits Then DoCmd.OpenForm "DatePicker", , , , , acDialog, Me.ActiveControl.Value If Not IsNull(DatePickerAntwort) Then Me.ActiveControl.Value = DatePickerAntwort End If End If Hat einer eine Idee, was da schief läuft. Ich habe keinen wesentlichen Unterschied zwischen den Rechnern gefunden, die user32.dll ist bei allen identisch. Hilfreiche Antworten werden wie immer mit reichlich Kaffee oä an Selbstabholer prämiert... Verwirrte Grüße aus Osnabrück Reinhold
Reinhold Geschrieben 6. März 2009 Autor Geschrieben 6. März 2009 Moin, ich habe jetzt herausgefunden, wie man das Problem beheben kann, verstehe aber irgendwie nicht den Zusammenhang. Wenn man in den Desktop-Eigenschaften unter Design "Windows XP" einstellt klappt alles bestens, stellt man hier aber "Windows klassisch" ein, tritt der beschrieben Fehler auf. Ist das ein Bug oder ein Feature? :upps:upps Reinhold
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden