Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
960to964
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
960to964
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

SQL auf ein Worksheet ausführen

SQL auf ein Worksheet ausführen
18.03.2008 13:37:41
Arthur
Hallo.
Meine Frage definiert sich so:
Hat mir jemand ein Beispiel, wie die Spalten einer Tabelle per SQL ausgewertet (bspw. sortiert) werden können; ggf. auf einem anderen Tabellenblatt?
Beispiel:
Tabelle1 enthält in Spalte A den Titel und dann alle Produkte. In Spalte B Stückzahlen.
Per SQL würde ich gerne die ProdukteListe alphabetisch sortiert erhalten.
In SQL sieht das prinzipiell einfach aus: "Select * from Group by "
Das Ergebnis darf die Daten überschreiben, kann aber auch in ein neues Tabellenblatt geschrieben werden.
Wie geht das in Excel?
Im Voraus Dank für eine Lösung.
-Arthur

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SQL auf ein Worksheet ausführen
18.03.2008 13:47:00
Rudi
Hallo,
wozu soll das gut sein?
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: SQL auf ein Worksheet ausführen
18.03.2008 14:24:00
fcs
Hallo Arthur,
wenn das Ergebnis die Daten überschreiben darf, dann wende doch einfach die Sortierfunktion von Excel an bzw. lasse die Daten vor dem Schliessen Excel-Datei automatisch sortieren, so dass sich ein Sortieren via SQL (wie auch immer das funktionieren sollte) erübrigt.
Andere Möglichkeit in Excel ist ein Pivot-Tabellenbericht, der aber ggf. Duplikate zusammenfasst.
Gruß
Franz

Kommentar
18.03.2008 16:19:21
Arthur
... war mal eben beschäftigt ...
@Rudi
Nutzen der Geschichte ist, dass sich über einen SQL-Command leicht Gruppierungen, Sortierungen etc. auf Tabellen realisieren lassen. Lägen die Werte bspw. in einer Access-Datenbank wäre es sicher verständlicher. In meinem Fall habe ich die Daten bereits in Excel importiert.
@Franz
Die Sortierfunktion von Excel genügt mir leider nicht, da ich in gewissen Fällen nur Summenzeilen ausgeben möchte. Select count()... Und das Ganze soll automatisch laufen.
Irgendwie denke ich, dass es eine Möglichkeit geben sollte, die mir erlaubt ein Tabellenblatt als Tabelle zu betrachten, in einem Thread habe ich auch gefunden, dass jemand von aussen auf eine Excel-Tabelle zugreifen möchte und die Antwort war: Mach's mit ADO/RDO. Leider ohne Beispiel.
Die Frage ist also noch offen.
Eventuell kennt mir jemand einen Lösungsansatz. ..... *nocham hoffenbin*
Ciao
-Arthur

Anzeige
... hier geht's weiter
19.03.2008 09:01:00
Arthur
Hallo Rudi.
Mit deinem Link komme ich wahrscheinlich weiter. Muss nur noch verstehen was da geht und wie ich es bei meiner Challenge einsetze.
... bin dann am Lesen, tippen und testen ...
Recht schönen Dank für den Link.
Gruß
Arthur

Anzeige
AW: Kommentar
18.03.2008 16:53:00
fcs
Arthur,
wenn die Daten in Excel importiert sind, dann bieten sich doch meistens die Autofilterfunktion (einfache Filter, Sortieren) oder Pivot-Tabellenberichte(Gruppieren, Summieren, Zählen) als einfache Werkzeuge an.
Grundsätzlich kann man via Daten--Externe Daten Importieren auch auf Excel-Dateien zugreifen und -wenn ich's richtig verstanden habe- kann man dort auch eine SQL-Anweisung unterbringen.
Allerdings bin ich (mangels Kenntnis in SQL) überfragt, wie man das geschickt in eine VBA-Prozedur einpacken könnte.
Gruß
Franz

AW: Kommentar
19.03.2008 09:08:37
Arthur
Hallo Franz.
Mit Autofilter etc. komme ich leider nicht zu meinem Ziel, da auf die Daten u.A. Charts angesetzt werden. Dafür benötige ich schon eine (mehrere) entsprechende Aufbereitungen. Die gehen per SQL theoretisch deutlich einfacher.
Hinweise darauf wie das funktionieren könnte habe ich parallel zu deiner Antwort erhalten. Die werde ich zunächst mal verfolgen. Mal sehen, was daraus wird.
Cheerio
-Arthur

Anzeige
AW: Kommentar
18.03.2008 21:07:35
Renee
Hi Arthur,
Beiliegend ein Beispiel mit einem 'komplexen' Sort in einem SQL auf ein Tabellenblatt der eigenen Arbeitsmappe!
Im Blatt AusgangsDaten befinden sich Namen, Vornamen und Geburtsdaten in beliebiger Reihenfolge.
Das Query (Rechtsklick und Daten refreshen) liest die Daten aus sortiert sie so, dass der erste Eintrag immer der vom heutigen Datum aus gesehen nächste Geburtstag ist.
Wichtig, wenn du diese Mappe herunterlädst:
Speichere sie unter C:\DatumsSQL.xls, an einem anderen Ort, oder unter anderem Namen wird sie nicht funktionieren. Das hat damit zu tun, das der Bezug im QueryTable Objekt sowohl in der .Connection, wie auch in der .SQL Eigenschaft, den Dateinamen 'fest' verdrahtet hat. Diese Eigenschaften kannst du nur über VBA (z.B. im Direktfenster) manipulieren!
Ich hoffe das Beispiel zeigt, wie frau/man SQL innerhalb Excel nutzen kann, ohne über hochkomplexe Formeln, Hilfsspalten oder Benutzereingaben (Sortieren... aber wie im beiligenden Beispiel ?) etc. das Gleiche oder ähnliches zu erreichen. Wenn du in den Abfrage-Eigenschaften z.B. Refresh on Open setzt, dann muss der Benutzer die Datei nur öffnen und hat immer die richtige Reihenfolge, sprich er sieht wer als Nächste/r Geburtstag hat.
Und hier nun endlich die Datei: Wer hat als nächstes Geburtstag?
GreetZ Renée

Anzeige
... die schnelle Version
19.03.2008 09:05:18
Arthur
Hallo Reneé.
... Dein Lösungsansatz scheint mit sehr elegant, nur leider funktioniert er bei mir nicht. Es kommt da eine Meldung 'Data source name' und 'default driver' fehlt ihm. Den Weg werde ich jedoch trotzdem ebenfalls verfolgen. Ich habe so das Gefühl, dass dieser Weg einfach zu verwalten ist.
Also auch ein Danke für diesen Hinweis.
-Arthur

AW: ... die schnelle Version
19.03.2008 09:50:00
Renee
Hi Arthur,
Wenn du folgendes machst, kommst Du vielleicht besser zum ziel:
1. Erstelle eine Datei mit Datensätzen (z.B. SQLDaten.xls)
2. Erstelle eine zweite mit einem Query (Driver = Excel) auf die Datei SQLDaten.xls. Den Query kannst du dir im MS-Query Wizard, zusammenbasteln und im SQL-View ggf. beliebig anpassen.
3. Analysiere die .Connection und die .SQL Eigenschaft im VBE der Querytable
4. Du bringst bestimmt auch mein Beispiel zum Laufen, wenn im Connection-String der richtige Driver steht und die Datei genau als C:\DatumsSQL.xls abgelegt ist.
GreetZ Renée
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige