Zum Inhalt springen

Unterschiedliches Verhalten von Access bei API aufrufen


Reinhold

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...