Wie Parameter an eine externe Datenabfrage in Excel hinzuzufügen, die grafisch nicht angezeigt werden können?

StackOverflow https://stackoverflow.com/questions/3091908

Frage

Ich verwende oft MS Excel Get External Data einfache Berichte erstellen - Abfragen für Datenbanken und Anzeigen gut in Excel ausgeführt wird. Excel großartige Funktionen wie Filterung und Pivot-Tabellen und vertraute Schnittstelle für Benutzer machen es für diese recht gut. eine Einschränkung mit Microsoft Query jedoch ist, dass Sie keine Parameter-Abfragen hinzufügen können, die nicht grafisch dargestellt werden können, was die SQL begrenzt Sie schreiben können.

Gibt es eine Lösung für den Fehler „Parameter werden in Abfragen nicht erlaubt, die nicht angezeigt werden können grafisch“?

War es hilfreich?

Lösung 3

Wenn Sie Excel 2007 können Sie VBA schreiben, um die Verbindungen zu ändern (das heißt die externen Datenabfragen) in einer Arbeitsmappe und aktualisieren Sie die Eigenschaft Commandtext. Wenn Sie einfach ? hinzufügen, wo Sie einen Parameter wollen, dann nächstes Mal, wenn Sie die Daten zu aktualisieren wird es für die Werte für die Verbindungen veranlassen! Magie. Wenn man sich die Eigenschaften der Verbindung suchen jetzt die Schaltfläche Parameter als normal aktiv und nutzbar sein wird.

z. Ich würde ein Makro, Schritt für Schritt durch es im Debugger schreiben, und machen es die Command entsprechend gesetzt. Sobald Sie dies getan haben, können Sie das Makro entfernen - es ist nur ein Mittel, um die Abfrage zu aktualisieren.

Sub UpdateQuery
    Dim cn As WorkbookConnection
    Dim odbcCn As ODBCConnection, oledbCn As OLEDBConnection
    For Each cn In ThisWorkbook.Connections
        If cn.Type = xlConnectionTypeODBC Then
            Set odbcCn = cn.ODBCConnection

            ' If you do have multiple connections you would want to modify  
            ' the line below each time you run through the loop.
            odbcCn.CommandText = "select blah from someTable where blah like ?"

        ElseIf cn.Type = xlConnectionTypeOLEDB Then
            Set oledbCn = cn.OLEDBConnection
            oledbCn.CommandText = "select blah from someTable where blah like ?" 
        End If
    Next
End Sub

Andere Tipps

Excel-Schnittstelle für SQL Server-Abfragen werden Sie einen benutzerdefinierten Parameter nicht zuläßt, haben. Ein Weg, um dies ist ein allgemein Microsoft Query zu erstellen, dann Parameter hinzufügen, dann parametorized Abfrage in den Eigenschaften der Verbindung einzufügen. Hier sind die detaillierten Schritte für Excel 2010:

  1. Öffnen Sie Excel
  2. Goto Daten
  3. Aus anderen Quellen wählen Von Microsoft Query
  4. Die „Datenquelle auswählen“ Fenster erscheinen. Wählen Sie eine Datenquelle und klicken Sie auf OK .
  5. Die Abfrage Qizard
    1. Wählen Sie Spalte: Fenster erscheint. Das Ziel ist, eine generische Abfrage zu erstellen. Ich empfehle eine Spalte aus einem kleinen Tisch zu wählen.
    2. Filter Daten: Klicken Sie einfach auf Weiter
    3. Sortierung: Klicken Sie einfach auf Weiter
    4. Fertig stellen. Klicken Sie einfach auf Fertig
  6. Das Menü "Daten importieren" Fenster erscheint:
    1. Klicken Sie auf Eigenschaften ... .
      1. Wählen Sie die Definition
      2. Im "Befehlstext:" Abschnitt fügen Sie eine WHERE-Klausel , die Excel-Parameter enthält. Es ist wichtig, alle Parameter hinzuzufügen, dass Sie jetzt wollen. Zum Beispiel, wenn ich zwei Parameter wünschen könnte ich hinzufügen:
        1 =? und 2 =?
      3. Klicken Sie auf OK auf die "Daten importieren" Fenster kommen
    2. Wählen Sie Pivottable-Bericht
    3. Klicken Sie auf OK
  7. Sie werden aufgefordert, den Parameter-Wert für jeden Parameter eingeben.
  8. Wenn Sie die Parameter eingeben werden Sie zu Ihrer Pivot-Tabelle sein
  9. Go batck zum Daten und klicken Sie auf die Verbindungen Eigenschaften
    1. Klicken Sie auf Definition
    2. Im "Befehlstext:". Abschnitt Einfügen in der realen SQL Query , dass Sie mit der gleichen Anzahl von Parametern mögen, dass Sie zuvor definiert
    3. Klicken Sie auf die Schaltfläche Parameter ...
      1. geben Sie die Eingabeaufforderungswerte für jeden Parameter
      2. Klicken Sie auf OK
    4. Klicken Sie auf OK die Eigenschaften-Fenster
    schließen
  10. Congratulations, haben Sie jetzt Parameter.

Einfache Abhilfe (kein VBA erforderlich)

  1. Right Tabelle klicken, erweitern "Table" Kontext manu, wählen Sie "Externe Daten Eigenschaften"
  2. Klicken Sie die Schaltfläche "Eigenschaften Verbindung" (in Tooltip markiert nur)
  3. Go-to Tab "Definition"

Von hier aus bearbeitet die SQL direkt durch Hinzufügen von ‚?‘ wo immer Sie einen Parameter wollen. Funktioniert auf die gleiche Art und Weise wie zuvor, außer Sie nicht nagged erhalten.

JA - Lösung ist, um XML-Datei zu speichern Arbeitsmappe und bearbeiten diese Datei als Text in Zwischenablage (zB ‚XML-Kalkulationstabelle 2003‘.)! verwenden „SEARCH“ -Funktion von Notepad Abfragetext zu finden und Ihre Daten ändern „?“.

speichern und in Excel öffnen, versuchen Refresh-Daten und Excel wird monit über Parameter sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top