MS Access Probleme mit hohen Auflösungen

14/08/2013 - 08:44 von Lutz | Report spam
Hallo Leute!

Mir ist gestern ein Problem aufgefallen, welches mit den neuen, großen
Auflösungen jenseits von 1920 und Co zusammenhàngt.

Der Bildschirm eines Kunden (27") hatte eine Auflösung von 2550 x
irgendwas. Unsere Access-Anwendung (2003) làuft im Vollbild und
positioniert einige Client-Fenster fast Bildschirmfüllend.
Bei den dazugehörigen Berchnungen kam eine Breite von 38000 heraus - ein
anschließendes MoveSize brachte mit diesem Wert einen Fehler 2498

Man kann dies auch schnell im Direktfenster nachvollziehen:
DoCmd.MoveSize 0, 0, 38000, 9000
- Laufzeitfehler '2498': Sie haben für eines der Argumente einen
Ausdruck eingegeben, der nicht den für das Argument erforderlichen
Datentyp hat.
Ich vermute, daß die Werte intern als Integer gehandelt werden
(InsideWidth???)

Allerdings schlug auch ein Versuch mit 32000 fehl
DoCmd.MoveSize 0, 0, 32000, 9000
- Laufzeitfehler '2505': Ein Ausdruck, der im Argument 3 steht, hat
einen für dieses Argument unzulàssigen Wert.

Vermutlich wird da intern noch etwas geprüft.
Die letzte bei mir funktionierende Kombination war
DoCmd.MoveSize 0, 0, 31680, 31680

Als Workaround habe ich erstmal DoCmd.MoveSize überall durch eine eigene
Sub ersetzt welche die beiden Parameter begrenzt.
Aber es tauchen auch an einigen anderen Stellen Fehler auf, wenn die
kritische Breite vom Formular überschritten wird. Ich konnte das jetzt
beim Kunden nicht alles nachprüfen, vermute aber, daß dort die Werte von
InsideWidth etc nicht mehr korrekt sind. Wir werden jetzt erstmal
irgendwie die Situation mit der Auflösung nachstellen müssen -
wahrscheinlich mit 2 Bildschirmen.

Die Frage ist aber, was noch alles davon betroffen sein könnte.
Hat von euch jemand das Problem schon mal gehabt?
Kann jemand vielleicht die Hintergründe erklàren?
Gibt es evtl sogar einen Patch dafür?


Gruß Lutz



news.albasani.net
 

Lesen sie die antworten

#1 Karl Donaubauer
27/08/2013 - 12:56 | Warnen spam
Hallo, Lutz!

Lutz wrote:
...
Der Bildschirm eines Kunden (27") hatte eine Auflösung von 2550 x
irgendwas. Unsere Access-Anwendung (2003) làuft im Vollbild und
positioniert einige Client-Fenster fast Bildschirmfüllend.
Bei den dazugehörigen Berchnungen kam eine Breite von 38000 heraus -
ein anschließendes MoveSize brachte mit diesem Wert einen Fehler 2498

Man kann dies auch schnell im Direktfenster nachvollziehen:
DoCmd.MoveSize 0, 0, 38000, 9000
- Laufzeitfehler '2498': Sie haben für eines der Argumente einen
Ausdruck eingegeben, der nicht den für das Argument erforderlichen
Datentyp hat.
Ich vermute, daß die Werte intern als Integer gehandelt werden
(InsideWidth???)

Allerdings schlug auch ein Versuch mit 32000 fehl
DoCmd.MoveSize 0, 0, 32000, 9000
- Laufzeitfehler '2505': Ein Ausdruck, der im Argument 3 steht, hat
einen für dieses Argument unzulàssigen Wert.

Vermutlich wird da intern noch etwas geprüft.
Die letzte bei mir funktionierende Kombination war
DoCmd.MoveSize 0, 0, 31680, 31680
...
Kann jemand vielleicht die Hintergründe erklàren?



Die sind recht einfach:

Die maximale Breite eines Access-Formulares
(s. <F1> zu Width oder den Access-Spezifikationen) betràgt
22 Zoll (ca. 55,87 cm) * 1440 = 31680 Twips
Alles klar?

Gibt es evtl sogar einen Patch dafür?



Naa, ist ja kein Bug sondern...
Diese Spezifikationen haben sich seit Ewigkeiten nicht geàndert.
Wenn das Anliegen öfter kàme, sollte man das Access-Team darauf
hinweisen, dass die Bildschirme breiter wurden. Ich lese aber zum
ersten Mal davon, dass jmd. mehr als die 55 cm Breite haben will.

Wegen der gleich geregelten Höhe von Bereichen kann ich mich
an einige Diskussionen erinnern, v.a. bei Berichten. Da kann man
sich aber mit mehr Bereichen und UFos/UBs aushelfen. Für die
Breite fàllt mir kein Workaround ein.

Servus
Karl
*********
Access-FAQ: http://www.donkarl.com + AEK16
Access-Entwickler-Konferenz, 28/29.9. Nürnberg, 19/20.10. Hannover

Ähnliche fragen