Ausführen einer SQL-Abfrage mit einem Parameter aus Excel 2007

21

Ich habe eine Abfrage in einer Excel-Tabelle. Ich folgte dies zu tun.

Aber wie kann ich meiner Abfrage einen Parameter aus einer Zelle hinzufügen?

Ich suche nach einer Möglichkeit, dies zu tun:

select *
from dbo.Customers
where CustomerID = Cell.A2

Das Cell.A2 funktioniert nicht. Aber wie kann ich so etwas hinzufügen, damit der Inhalt einer Zelle in meiner Abfrage verwendet wird?

Vaccano
quelle
Haben Sie versucht, nur die Zelle zu benennen - und dann den Namen in der Abfrage anstelle des Zellbezugs zu verwenden?

Antworten:

17

Keine Ahnung, warum MS dies so kompliziert gemacht hat. Sie müssen Microsoft Query verwenden.

Klicken Sie auf Daten -> Aus externen Quellen -> Aus Microsoft Query. CHoose Datenquelle erscheint. Wählen Sie SQL Server aus, geben Sie die Authentifizierungsdetails ein und wählen Sie die Tabelle aus

Bildbeschreibung hier eingeben

Klicken Sie auf Weiter, wählen Sie keine Filterkriterien aus, wählen Sie Sortieren nach Kriterien, klicken Sie auf Weiter. Klicken Sie jetzt auf In MS Query anzeigen / bearbeiten, anstatt Zurück zu Excel zu wählen

Bildbeschreibung hier eingeben

Klicken Sie auf Fertig stellen. Klicken Sie nun in MS Query auf Kriterien -> Kriterien hinzufügen, wählen Sie den Operator aus und geben Sie den Wert ein[]

Bildbeschreibung hier eingeben

Klicken Sie auf Datei -> Daten an Excel zurückgeben. Jetzt sollte Excel Sie zur Eingabe des Parameters auffordern und die entsprechende Zelle auswählen

Bildbeschreibung hier eingeben

Um die Parameter zu bearbeiten, klicken Sie auf Daten -> Eigenschaften -> Fingersymbol -> Definition -> Parameter

Bildbeschreibung hier eingeben


Sie können auch den SQL-Abfrage-Editor verwenden und die Abfrage mit den Joins eingeben und ein ?gegen das Feld setzen, in dem der Parameter abgerufen werden muss.

Bildbeschreibung hier eingeben

Sathyajith Bhat
quelle
Leider ist der Parameter deaktiviert.
Vaccano
@Vaccano: Meine Antwort wurde überarbeitet, bitte schauen Sie nach
Sathyajith Bhat
Vielen Dank für die Mühe bei diesem Sathya. Leider ist mir aufgefallen, dass meine Abfrage einige Verknüpfungen enthält und daher von MS Query nicht grafisch dargestellt werden kann. Das macht es so, dass Sie keine Parameter haben können. Ich werde es als VBA-Funktion machen. Ich nicke Ihnen jedoch zu, weil Ihre Antwort so vollständig war.
Vaccano
2
@Vaccano: Sie können die Abfrage schreiben die SQL - Editor und ein legte ?gegen das Feld , zu dem der Parameter ausgewählt werden muss i.imgur.com/NgXxc.png
Sathyajith Bhat
2
Ich habe festgestellt, dass Sie, sobald die Abfrage in Excel vorliegt, in den Abfrageparameter-Bildschirm wechseln und dort bearbeiten können, ohne erneut in MS Query zu wechseln. Lass einfach ein? wohin die kriterien gehen. Kehren Sie dann zum Bildschirm mit den Verbindungseigenschaften zurück und weisen Sie diesen Parameter einer Zelle in der Tabelle zu.
Tracy Probst
1

Für einen unverschämten Stecker ist es nie zu spät ...

Es gibt dieses tolle kleine Plugin für Excel ... (Haftungsausschluss: Ich bin der Autor)

Es ist ein Excel-Plugin, das Excel eine Datenbank-Engine und eine SQL-IDE hinzufügt.

Hiermit können Sie SQL-Vorgänge für alle Elemente ausführen, die in Excel als Tabelle markiert sind. Sie können über Arbeitsmappen hinweg Abfragen durchführen und in derselben Abfrage auch Tabellen aus einer externen Datenbank (SQL Server / SQLite / Postgres / Access / MySQL) verwenden.

Es hat SQL-Syntax-Hervorhebung, Anweisungsvervollständigung und eine Reihe anderer cooler Dinge. Es verwendet SQLite unter der Haube, kann aber auch externe Datenbank-Engines verwenden, um die Daten zu verarbeiten.

Ich bezahle zwar dafür, aber es gibt eine kostenlose Testversion, die Sie 30 Tage lang nutzen können. Es heißt ThingieQuery.

Entschuldigung für den Stecker, hoffentlich ist er nicht zu unpassend.

Antonio Nakic Alfirevic
quelle
-1

Setzen Sie den Wert als

where employeecode = '?'

Dadurch wird die Parametertaste aktiviert, aber wenn Sie auf OK klicken, werden Sie dazu aufgefordert.

Langsamer Lerner
quelle