HERBERS Excel-Forum - das Archiv
SQL Abfrage in Tabellenblatt speichern?
Klaus

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.

SQL Abfragestring bearbeiten und speichern
NoNet

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
AW: SQL Abfragestring bearbeiten und speichern
Klaus

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.
AW: SQL Abfragestring bearbeiten und speichern
Klaus

Gibt es eine Möglichkeit das MS Query SQL Aliases akzeptiert.
Z.B.: count(*) as Anz oder count(*) Anz funktioniert leider nicht!