Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Datum in ODBC Abfrage automatisieren - geht das?

Begonnen von K a t j a, Dezember 03, 2024, 10:23:52

⏪ vorheriges - nächstes ⏩

K a t j a

Hallo Zusammen!
Folgende Frage: Ich habe eine ODBC Abfrage, mit der ich die Daten aus unserer Warenwirtschaft ziehe. In einer Where-Bedingung ist ein Datum enthalten. Dieses würde ich gern automatisch auf das heutige Datum setzen. Um die Sache zu vereinfachen (hoffe ich) habe ich eine Steuertabelle, welche ich am Anfang importiere und wo mehrere Daten (u.a. das aktuelle Datum) drin stehen.

Ich habe leider keinen Zugriff auf unser System und kann hier kein Datum auslesen. Kann ich das Datum der ODBC über diese Tabelle automatisieren? Wenn ja, wie? Gibt es einfachere Varianten?

PhilS

Zitat von: K a t j a am Dezember 03, 2024, 10:23:52Ich habe eine ODBC Abfrage, mit der ich die Daten aus unserer Warenwirtschaft ziehe. In einer Where-Bedingung ist ein Datum enthalten. Dieses würde ich gern automatisch auf das heutige Datum setzen.
Wenn es sich um eine Access Abfrage (auf eine ODBC-Tabelle) handelt, kannst du die Date() Funktion verwenden, um das aktuelle Datum zu ermitteln.
Wenn es sich um eine ODBC Pass-Through-Abfrage handel, musst du entweder per VBA das SQL der Abfrage jeweils neu aufbauen, jeweils mit dem Rückgabewert von Date(), oder du musst eine analoge Funktion aus dem Sprachumfang des Backend-Systems verwenden.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

K a t j a

Es handelt sich um eine Pass-Through-Abfrage. Date() kann ich doch nur benutzen, wenn ich Zugriff auf das Systemdatum hätte, oder nicht? Ich kann leider nicht auf das Datum des Servers zugreifen. Ich bin über Citrix verbunden und habe dort keinen Zugriff auf Systemdaten. Oder geht das trotzdem?

PhilS

Zitat von: K a t j a am Dezember 03, 2024, 13:23:16Es handelt sich um eine Pass-Through-Abfrage. Date() kann ich doch nur benutzen, wenn ich Zugriff auf das Systemdatum hätte, oder nicht? Ich kann leider nicht auf das Datum des Servers zugreifen. Ich bin über Citrix verbunden und habe dort keinen Zugriff auf Systemdaten.
So ganz kann ich dir nicht folgen. Mir ist unklar, was du mit "keinen Zugriff auf Systemdaten" meinst.
Nachvollziehbar wäre, dass du das Systemdatum nicht ändern darfst. Das ist aber im aktuellen Zusammenhang irrelevant, weil du das Datum ja nur lesen willst. Die Date()-Funktion funktioniert dort sicherlich auch.

In einer Pass-Through-Abfrage kannst du die Date-Funktion nicht direkt verwenden, sondern musst das SQL-Statement der Abfrage anpassen.

Etwa so:
CurrentDb.QueryDefs("DeineAbfrage").SQL = _ 
       "SELECT Irgendwas FROM irgendwo WHERE EinDatum = '" & Format(Date,"YYYY-MM-DD") & "'
Datumsformat und Begrenzer sind abhängig vom Zielsystem der ODBC-Verbindung. Die musst du ggfls anpassen.

Alternativ kannst du anstelle von der Access/VBA Date() Funktion auch eine analoge Funktion des Zielsystems verwenden. Für Microsoft SQL Server etwa so:
SELECT Irgendwas FROM irgendwo WHERE EinDatum = CAST(GETDATE() AS Date);
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor