Microsoft Excel

Herbers Excel/VBA-Archiv

SQL Abfrage in Tabellenblatt speichern? | Herbers Excel-Forum


Betrifft: SQL Abfrage in Tabellenblatt speichern? von: Klaus
Geschrieben am: 17.12.2009 16:01:51

Hallo,

Ich würde gerne eine etwas komplexere SQL Abfrage an einen SQL Server senden und das Ergebnis als Datenbankabfrage in einem Tabellenblatt speichern. Ist das überhaupt in Exceö möglich?

Die Verbindung zum Server klappt sowohl unter Externe Daten Importieren / Daten Importieren als auch unter Neue Abfrage Erstellen.

Bei Daten Importieren bekomme ich nur eine Komplette tabelle und bei Neue Abfrage Erstellen kommt das Programm MSSQL Query ins spiel, wo ich aber keinen SQL Befehl absetzen kann obwohl ich die gewünschten Tabellen hinzufüge bekomme ich immer die Fehlermeldung ... unbekannte Tabelle ....

Hier der Select:

select k.nummer Kostenstelle, t.bezeichnung ART, count(*) Anzahl from inventar i inner join geraet g on g.id=i.geraet_id and g.endoflife_id is null inner join geraet_typ t on t.id=g.typ_id and t.endoflife_id is null inner join kostenstelle k on k.id=i.kostenstelle_id and k.endoflife_id is null where i.inv_status_id=100 and g.typ_id in (24,27,52,57) group by t.bezeichnung,k.nummer order by art,kostenstelle

Danke für Eure Hilfe.

  

Betrifft: SQL Abfragestring bearbeiten und speichern von: NoNet
Geschrieben am: 17.12.2009 17:07:23

Hallo Klaus,

klaro kannst Du den SQL-String in einem Tabellenblatt speichern (auch in eine einzige Zelle, wenn der SQL-String nicht zu lang ist) - hier die VBA-Anweisung :

Sheets("Tabelle2").[A1]=sheets("Tabelle1").Querytables(1).sql

Allerdings ist das nicht nötig, denn der SQL-String ist ohnehin im Tabellenblatt (unsichtbar) gespeichert und kann folgendermassen (ohne VBA !) bearbeitet werden :

Schritt 1 : Abfrage per Rechtsklick bearbeiten und Abbrechen (bitte ein-/ausblenden) : Einblenden  Ausblenden :


Schritt 2 : SQL in MS Query bearbeiten (bitte ein-/ausblenden) : Einblenden  Ausblenden :



Gruß, NoNet


  

Betrifft: AW: SQL Abfragestring bearbeiten und speichern von: Klaus
Geschrieben am: 18.12.2009 18:02:53

Hallo NoNet,

Danke für Deine Antwort, hat weitergeholfen, zumindest ein Stück.

Ad Screen1 : Bei mir öffnet sich nicht der Querry Assistent wie in deimen
Screen beschrieben sondern glecih MS Query. Aber egal !

Auch Select Statement konnte ich nun absetzen und das Ergebnis in Exel rückführen.
Leider ist das Ergebnis nicht zu meiner vollen Zufriedenheit da MS Query scheinbar keine SQL Aliase akzeptiert.

Z.B.: count(*) as Anz oder count(*) Anz funktioniert nicht und desswegen hat diese Spalte keine Überschrift. Es gibt komischerweise keine Fehlermeldung, es wird einfach beim speichern ignoriert ??

Es gibt auch keine Möglichkeit in MS Query im Nachhinein dazuzubenennen.

Leider brauche ich aber eine Tabellenüberschrift da ich das Ergebnis in einer
Pivottabelle weiterverarbeiten muß.

Gibt es hierfür einen Workaround?

Danke für jeden Tip !

Klaus

ps:
Ad: VBS, das lassen wir mal aussen vor ;-) ist mir momentan noch zu hoch.


  

Betrifft: AW: SQL Abfragestring bearbeiten und speichern von: Klaus
Geschrieben am: 22.12.2009 20:57:41

Gibt es eine Möglichkeit das MS Query SQL Aliases akzeptiert.


Z.B.: count(*) as Anz oder count(*) Anz funktioniert leider nicht!


Beiträge aus den Excel-Beispielen zum Thema " SQL Abfrage in Tabellenblatt speichern?"