Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Ereignis "Beim Formatieren" wird nicht ausgelöst

Begonnen von peter4400, Oktober 08, 2024, 13:17:11

⏪ vorheriges - nächstes ⏩

peter4400

Hi,
ich versuche in einem Bericht ein datetime-Feld aus einer SQL Server Tabelle zu formatieren. Aber Access interessiert sich nicht dafür, was ich in die Format-Eigenschaft schreibe. Nun habe ich chatgpt gefragt, die KI versteht, dass ich frustriert bin, und empfiehlt, ich solle es mal über das Event "Beim Formatieren" des Detail-Bereichs des Berichts versuchen.
Der Event wird aber gar nicht ausgelöst? Kann ein msgbox "hallo" reinschreiben, da passiert einfach nix ...

Hat wer ne Idee?

edit: Access 2016

Knobbi38

Hallo Peter,

ändere die Berichtsansicht, nicht in allen Ansichten werden alle Ereignisse ausgelöst, oder weise den Wert im Report_Load Event dem Steuerelement zu.

OT:
Wann setzt sich eigentlich die Erkenntnis durch, daß ChatGPT nur für fortgeschrittene Programmierer einen Mehrwert biete? Ohne Grundkenntnisse kann man ChatGPT gar nicht nicht erst die richtigen Fragen stellen und die erhaltenen Antworten interpretieren bzw. auf Richtigkeit prüfen. Selbst Unterschiede in der Syntax von VB.NET und VBA wird von  ChatGPT nur bedingt berücksichtigt.
Als Alternative empfehle ich einfach mal einen Blick in die Doku zu werfen, da kann man schon vorab vieles klären.



Gruß Ulrich

peter4400

mit dem Argument könnte man auch sagen "wann setzt sich die Erkenntnis durch, dass Google erst für fortgeschrittene Programmierer einen Mehrwert bietet"

MzKlMu

Hallo,
nur in der Seitenansicht eines Berichtes werden alle angelegten Ereignisse ausgeführt. "Beim Formatieren" und "Beim Drucken" werden in der Berichtsansicht nicht gestartet.
Wenn man wirklich sehen will, wie der Ausdruck aussieht geht das nur in der Seitenansicht und dann kommt auch die MsgBox mit "Hallo".

Gruß Klaus

peter4400

danke, das wirds wohl gewesen sein.
Allerdings scheint die fehlende Formatierungsmöglichkeit selbst daran gelegen zu haben, dass ich den Standard-ODBC-Treiber {SQL Server} verwendet hatte. Es hat ca. 2 Stunden gedauert, den ODBC 17 einzubinden ... aber damit lassen sich die Datumsfelder plötzlich formatieren genau wie bei lokalen Tabellen.

Bitsqueezer

Hallo,

"datetime" wird auch erst von neueren SQL Server Treibern unterstützt.
Wenn man so uralte wie "SQL Server" einsetzt, muß man als Datentyp smalldatetime nehmen, das ist dann für Access verständlich.
Ansonsten wird in Text übersetzt und dann kann es nicht mehr als Datum verwendet werden. Du solltest allerdings in der Lage sein, mit CDate den Text in ein für Access/VBA verständliches Datum zu übersetzen. CDate ist allerdings von den Windows-Regionaleinstellungen abhängig, der Text muß dann in einer entsprechenden Formatierung vorliegen, die CDate übersetzen kann.
Man kann sich auch auf SQL Server Seite behelfen, indem man das Datum in einer View als smalldatetime castet, sofern man nicht die erhöhte Genauigkeit von datetime benötigt.

Gruß

Christian

PhilS

Zitat von: Bitsqueezer am Oktober 08, 2024, 16:09:05"datetime" wird auch erst von neueren SQL Server Treibern unterstützt.
Wenn man so uralte wie "SQL Server" einsetzt, muß man als Datentyp smalldatetime nehmen, das ist dann für Access verständlich.
Sowohl DateTime als auch SmallDateTime werden ohne Probleme vom "SQL Server" ODBC Treiber unterstützt.
Nur die neueren Datumsdatentypen, (z.B. DateTime2, Date, Time) werden erst von neueren Treibern unterstützt.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Bitsqueezer

Hab's gerade getestet, Du hast recht. Ich hatte es anders in Erinnerung.

peter4400

Zitat von: PhilS am Oktober 08, 2024, 19:36:52Sowohl DateTime als auch SmallDateTime werden ohne Probleme vom "SQL Server" ODBC Treiber unterstützt.
Nur die neueren Datumsdatentypen, (z.B. DateTime2, Date, Time) werden erst von neueren Treibern unterstützt.
Ich schwöre mit dem alten ODBC-Treiber gab es keine Formatierungsmöglichkeit.

PhilS

Zitat von: peter4400 am Oktober 09, 2024, 12:21:58Ich schwöre mit dem alten ODBC-Treiber gab es keine Formatierungsmöglichkeit.
Das ist völlig plausibel, wenn du einen der neuen Datums-Datentypen verwendet hast. - Das kannst du in deiner Tabellendefinition auf dem SQL Server ja einfach nachschauen.
Der SSMA (SQL Server Migration Assistant) verwendet bei der Migration von Access-Datenbanken standardmäßig DateTime2 für Datum/Uhrzeit-Spalten, auch wenn das eher wenig Sinn macht.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

peter4400

ja, das war aber schon einer meiner frühesten trouble-shooting-Ansätze, dass ich aus datetime2 datetime gemacht habe? Auch datetime lässt sich nicht formatieren mit {SQL Server}
Sie dürfen in diesem Board keine Dateianhänge sehen.

PhilS

Zitat von: peter4400 am Oktober 09, 2024, 14:00:30ja, das war aber schon einer meiner frühesten trouble-shooting-Ansätze, dass ich aus datetime2 datetime gemacht habe?
Ich vermute, da bist du auf eine andere Besonderheit mit verknüpften ODBC-Tabellen gestoßen: Wenn du die Struktur der Tabelle auf dem Server änderst, dann musst du die Tabelle in Access neu verknüpfen, damit Access diese Änderungen bemerkt.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

peter4400

nee, ich lösche die Einbindung bei jedem Start mit db.tabledefs.delete und erstelle sie neu

markusxy

Zitat von: peter4400 am Oktober 09, 2024, 12:21:58
Zitat von: PhilS am Oktober 08, 2024, 19:36:52Sowohl DateTime als auch SmallDateTime werden ohne Probleme vom "SQL Server" ODBC Treiber unterstützt.
Nur die neueren Datumsdatentypen, (z.B. DateTime2, Date, Time) werden erst von neueren Treibern unterstützt.
Ich schwöre mit dem alten ODBC-Treiber gab es keine Formatierungsmöglichkeit.

Nicht so viel schwören  ;)
Also mit dem Uralt MS SQL 2000 und selbst mit der damaligen Vorgängerversion mit Uralttreiber funktioniert Datetime in Access ohne Probleme.
Vielleicht hast du in den Verweisen eine alte DAO Version im Einsatz gehabt.
Ohne tieferen Einblick kann man da nicht viel sagen.
Es ist aber immer wieder erstaunlich zu welchen Schlussfolgerungen man kommen kann, wenn mal was nicht funktioniert.


peter4400