Live-Forum - Die aktuellen Beiträge
Datum
Titel
07.05.2024 14:51:38
07.05.2024 13:27:17
Anzeige
Archiv - Navigation
1896to1900
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

SQL-Anweisung mit Zellbezug?

SQL-Anweisung mit Zellbezug?
09.09.2022 10:58:05
Martin
Hallo zusammen,
ich habe in Excel eine automatische SQL-Datenabfrage mit einer SQL-Anweisung.
Die Anweisung sieht in etwa so aus:
SELECT * FROM [FA_Journal] WHERE ERF_DAT > '09.01.2022'
Das Datum steht eigentlich für den 01.09.2022, allerdings muss ich es in dem obigen Format angeben damit es funktioniert.
Nun die Frage: Aus mehreren Gründen wäre es gut, wenn ich die SQL-Abfrage beim Datum mit einem Wert aus Excel füttern könnte.
Also so: SELECT * FROM [FA_Journal] WHERE ERF_DAT > Sheets("Tabelle1").Range("A1").Value
Kann mir da jemand von euch weiterhelfen?
Gruß
Martin

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
nur 1 Idee
09.09.2022 12:32:25
Oberschlumpf
Hi Martin,
änder mal...

Sheets("Tabelle1").Range("A1").Value
...um in...

Format(Sheets("Tabelle1").Range("A1").Value,"MM.DD.YYYY")
damit werden aus dem deutschen Datum Range("A1") Monat + Tag getauscht.
Hilfts?
Ciao
Thorsten
AW: nur 1 Idee
09.09.2022 13:02:04
Martin
Hallo Thorsten,
danke für deine Antwort. Ich habs gerade probiert, SQL-Anweisung sieht dann folgendermaßen aus:

SELECT * FROM [FA_Journal] WHERE ERF_DAT >= Format(Sheets("Tabelle1").Range("A1").Value, "MM.DD.YYYY")
Daraufhin bekomme ich aber die Fehlermeldung "Sheets is not a recognized built-in function name".
Anzeige
AW: nur 1 Idee
09.09.2022 13:14:30
Oberschlumpf
Hi Martin,
ok, Format kann auch ein SQL-Befehl sein - das weiß ich nicht.
Versuchs mal mit diesem Code

Dim ldtDatum As Date
ldtDatum = Format(Sheets("Tabelle1").Range("A1").Value,"MM.DD.YYYY")
SELECT * FROM [FA_Journal] WHERE ERF_DAT >= ldtDatum
oder vielleicht so

Dim lstrDatum As String
lstrDatum = Format(Sheets("Tabelle1").Range("A1").Value,"MM.DD.YYYY")
SELECT * FROM [FA_Journal] WHERE ERF_DAT >= lstrDatum
Mehr Ideen hab ich nicht.
Hilfts?
Ciao
Thorsten
AW: nur 1 Idee
09.09.2022 13:37:52
Heli
Hi,
in Deinem Anfangspost steht als Ziel das Datum in einzelnen 'Apostrophen' daher sollten diese vermutlich noch außen rum gebaut werden - vermutlich ist die Datenquelle als Text formatiert, dann erwartet SQL dieses Format

"'" & Format(Sheets("Tabelle1").Range("A1").Value,"MM.DD.YYYY") & "'"
VG, Heli
Anzeige
AW: SQL-Anweisung mit Zellbezug?
09.09.2022 14:07:37
ChrisL
Hi
Gehe ich richtig in der Annahme, dass das SQL-Statement direkt in den Verbindungseigenschaften definiert wurde?
(vorweg, dort kannst du kein VBA verwenden)
Handelt es sich beim Datum um eine manuelle Eingabe oder um eine Berechnung (z.B. fix Tagesdatum minus 8 Monate).
Um welche Art von Datenbank handelt es sich (z.B. SQL-Datenbank Server, Access-DB usw.)?
Die Apostroph würden darauf deuten, dass das Datum in der DB als Text-String definiert ist. Insofern erstaunt es mich, dass es so funktioniert.
Wenn meine Vermutungen richtig sind, müsstest du auf alternative Techniken ausweichen. Entweder die Verbindungseigenschaften per VBA anpassen, mit VBA bzw. ADODB auf die Datenbank zugreifen oder mittels Power-Query.
https://excelhero.de/power-query/power-query-ganz-einfach-erklaert/
cu
Chris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige