andiwo
Goto Top

SQL-Syntax für Datumsfilter bei Seriendruckanbindung via OLEDB

...WHERE (`Datum`=#10/04/2007#)... funktioniert nicht...

Hallo Leute,
ich habe folgendes Problem:
Ich habe ein Seriendokument vie OLEDB an eine Access-Datenbank angebunden; DDE kann ich aus verschiedenen Gründen nicht verwenden, sodass ich auf OLEDB angewiesen bin.
Das Problem der Datumsformatierungen ist mir bekannt; das Formatieren im Dokument kein Problem.
Aber:
Ich möchte per VBA die Datenherkunft einschränken, und zwar nach Datum.
Ich habe alle möglichen Datumsformatierungen ausprobiert, aber nichts funktioniert, weder mit noch ohne # an Anfang und Ende, mit oder ohne normalen oder schrägen Anführungszeichen und und und... Nicht klappt.
In Access habe ich ein ganz normales Datumsfeld.
Ich wollte die Syntax herausfinden, in dem ich im Seriendruck-Manager die Datenherkunft einschränke und das ganze als Makro aufnehme, aber nicht einmal das manuelle Filtern klappt nach Datum. Nach jedem anderen Feld, kein Problem, aber nicht nach Datum.
Pleas help me!!
Hier ist der Code, wie er (ohne Filter) funktioniert:

ActiveDocument.MailMerge.OpenDataSource Name:="C:\Datenbank.mdb" _
, ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=C:\Datenbank.mdb;Mode=Read;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=5;Jet OLEDB:Dat" _
, SQLStatement:="SELECT * FROM `tbl_kalender`", _
SQLStatement1:="", SubType:=wdMergeSubTypeAccess

Wie muss der SQL-String mit Filter aussehen??
Ich hätte angenommen: SELECT * FROM `tbl_kalender` WHERE (`Datum`=#10/04/2007#) - Geht aber leider nicht.

Wer hat eine Idee? Danke!!!

Content-Key: 70267

Url: https://administrator.de/contentid/70267

Printed on: April 24, 2024 at 15:04 o'clock

Member: Biber
Biber Oct 05, 2007 at 19:37:54 (UTC)
Goto Top
Moin AndiWo,

willkommen im Forum.
WHERE (`Datum`=#10/04/2007#)... funktioniert nicht...

Okay, aber so viel plausibel klingende Datumsformate kann M$Access ja nun auch nicht implementiert haben.

Die beiden naheliegendsten wären doch

.WHERE (`Datum`=#2007-04-10#)
-oder klassisch deutsch, falls die Registry-Einstellungen abgefragt werden sollten:
WHERE (`Datum`=#10.04.2007#)

Probierst Du mal?

Grüße
Biber
Member: AndiWo
AndiWo Oct 06, 2007 at 14:31:19 (UTC)
Goto Top
Hallo und Danke für die Antwort.
Ich dachte eigentlich auch dass nicht so viele Möglichkeiten in Frage kommen, bis ich wirklich ALLE ausprobiert habe.. face-smile
Habe das Problem allerdings trotzdem inzwischen gelöst:
Das Format muss

"SELECT * FROM `Tabelle` WHERE `Datum` = #JJJJ-MM-TT 00:00:00#"

sein, also mit Uhrzeit.
Falls sich jemand für den Lösungsweg interessiert:
Da ich nicht nur per VBA, sondern auch in den Abfrageoptionen im Seriendruckmanager nicht nach Datum filtern konnte, habe ich versucht, zuerst dieses Problem zu lösen, um dann ein Makro auzeichnen zu können. Dann hat mich eine Google-Suche nach "Abfrageoptionen Datum" auf folgende Seite gebracht: http://support.microsoft.com/kb/504487/de
Dann konnte ich ein Makro aufzeichnen und spicken... face-smile

Viele Grüße!