Neuigkeiten:

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

Mobiles Hauptmenü

SQL Befehl

Begonnen von NeuRose, August 05, 2021, 10:45:31

⏪ vorheriges - nächstes ⏩

NeuRose

Hallo,
 wie setze ich folgendes schlank in einen SQL Befehl um.
Ich habe es derzeit mit Hilfe einer VBA Funktion gelöst, suche aber einen schnelleren Weg.

Folgende Tabelle ist in folgende Abfrage zu realisieren:

Sie dürfen in diesem Board keine Dateianhänge sehen.

PhilS

Zitat von: NeuRose am August 05, 2021, 10:45:31wie setze ich folgendes schlank in einen SQL Befehl um.
Ich habe es derzeit mit Hilfe einer VBA Funktion gelöst, suche aber einen schnelleren Weg.
Eine VBA-Funktion, um eine kommagetrennte Liste von Werten zu erstellen, ist in einer reinen Access Anwendung leider der einzige Weg.
Mit reinem SQL ist das nicht möglich. Wenn das Backend das unterstützt (z.B. MS SQL Server), kannst du dort die Werte mit einem serverseitigem Cursor oder ähnlichen Konstrukten erstellen.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

NeuRose

Hallo, ich dachte so an eine Procedure unter SQL? Damit habe ich nicht viel Erfahrung  ;-(

ebs17

#3
Ausgangspunkt der Überlegungen und vielleicht auch mitteilenswert wäre das verwendete Datenbankmanagementsystem. Da hat quasi jedes einen eigenen SQL-Dialekt, die verfügbaren Methoden darin können sich erheblich unterscheiden.
Mit freundlichem Glück Auf!

Eberhard

markusxy

Zitat von: NeuRose am August 05, 2021, 10:45:31Ich habe es derzeit mit Hilfe einer VBA Funktion gelöst, suche aber einen schnelleren Weg.

Um wie viele Datensätze geht es denn überhaupt?

Es gibt die Möglichkeit die Liste mit Hilfe der ADO getString Funktion zu erstellen.
Das sollte um ein vielfaches schneller sein, da die VBA Bremse nicht zum Tragen kommt.
Hast du mal überprüft, wie viel Zeit die VBA Funktion alleine verbraucht?
Die Grundabfrage benötigt ja auch Zeit.

ebs17

Zitatmit Hilfe einer VBA Funktion gelöst
Diese wird sehr wahrscheinlich auch eine SQL-Anweisung benutzen, nun aber pro Datensatz ausgeführt. Damit kann man Probleme und Fehler wie z.B. fehlende Indexnutzung vervielfältigen, was sich dann in unangenehmen Laufzeiten äußern kann.
Mit freundlichem Glück Auf!

Eberhard