Rufen Sie exakte Online-Daten ab, für die keine Excel-Formel vorhanden ist

640
Guido Leenders

Ich möchte das Ergebnis der folgenden Abfrage in einer Excel-Zelle abrufen:

select pro.code from ExactOnlineRest.Project.projects PRO join ExactOnlineRest.Manufacturing.shoporders SHO on SHO.project = PRO.ID where ShopOrderNumber = <value in cell F2> 

Die Abfrage funktioniert gut im Abfrage-Tool. Ich kann auch einen Invantive Control-Block verwenden, um die Daten als Liste mit einer Zeile / einer Spalte abzurufen. Aber wie rufe ich das Ergebnis dieser Abfrage direkt in einer Excel-Zelle ab, ohne einen Block beizubehalten?

0

1 Antwort auf die Frage

0
Guido Leenders

Sie können die folgende Formel verwenden:

=I_SQL_SELECT_SCALAR("pro.code", "exactonlinerest..projects pro join exactonlinerest..shoporders sho on sho.project = pro.id", "shopordernumber = " & F2) 

Beachten Sie jedoch, dass hartcodierendes SQL wie dieses fehleranfällig ist und beim Upgrade teuer ist, da das SQL bei Änderungen von Feldern manuell überprüft und möglicherweise korrigiert werden muss. Zumal diese Abfrage einen Join und einige SQL-Injection-Techniken verwendet, die in zukünftigen Versionen möglicherweise deaktiviert werden.

Möglicherweise möchten Sie eine Liste der erforderlichen, häufig wiederkehrenden Fertigungsabfragen erstellen und diese den von Invantive Control unterstützten Excel-Formeln hinzufügen.

Es wird auch empfohlen, einen Alias pjtfür projects, den Styleguide und sorfür zu verwenden shoporders.

Bitte beachten Sie auch, dass die SQL-Anweisung in der where-Klausel fehlschlägt, wenn die Zelle F2 leer ist. Als Alternative können Sie ein "hinzufügen, wenn leer" null "oder ähnliches verwenden.