none
Parametrisierung von Excel Query RRS feed

  • Frage

  • Hallo allerseits,

    habe hier ein Problem und müsste das ohne VBA lösen. Nachdem Dr. G und diverse Suchen seit gestern Abend erfolglos sind/ immer die VBA-Lösung propagieren, muss ich hier mal posten.

    Ich habe ein Query auf eine SQL-DB. Mittels ODBC möchte ich hier abfragen. Das klappt soweit. Einen Parameter einbringen ist auch nicht schwer. Jetzt mein Problem: wenn der User einen bestimmten Wert in die Zelle schreibt(auswählt per Listenbereich), dann soll keine Einschränkung des Parameters passieren.

    Bsp: User wählt xx1 aus => alle Merkmale mit xx1 werden geladen (geht). Wenn der User ALLE auswählt, dann sollten xx1 bis xx99 geladen werden.

    Wie kann ich das im Query machen? Es kommt bei einer IIF Einschränkung immer die Warnung, dass Parameter in Abfragen, die nicht grafisch dargestellt werden können, nicht zulässig sind ??

    Ich danke jetzt schon mal für die Aufmerksamkeit :)

    cu Maczac

    Donnerstag, 19. Februar 2015 08:20

Antworten

  • immer die Warnung, dass Parameter in Abfragen, die nicht grafisch dargestellt werden können, nicht zulässig sind ??

    Hallo,

    da hattest Du MS Query verwendet? Der Designer unterstützt nur einfach Abfragen; einfach auf "SQL" umstellen, dann kannst Du es eingeben.

    Die Abfrage kannst Du ohne IIF ganz einfach über eine OR Bedingung im WHERE lösen, also z.B.

    ...
    WHERE (DeinFeld = ? OR ? = 'Alle')

    Dann musst Du zwar den Parameter zweimal mappen, aber das stellt ja kein Problem da. Hier mal ein Mini-Beispiel auf AdventureWorks - AddressId, in der Abfrage sind zwei Parameter, die beide auf die Zelle A2 gemappt sind; gibt man 0 ein, werden alle Adressen angezeigt, sonst nur die passende zur AddressId.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Donnerstag, 19. Februar 2015 10:51
  • Hallo,

    nach weiteren Versuchen hat es geklappt!!

    Ich hatte als Zelle ein Listenfeld einer Abfrage, um die konkreten Auswahlmerkmale zu haben. Ich hab nun die Parameter auf eine freie Zelle gemappt und in diese Zelle einen Bezug auf die Listenauswahl.

    Damit geht es komischer Weise. Hab es zwar nicht verstanden, aber es funktioniert :)

    Donnerstag, 19. Februar 2015 14:06

Alle Antworten

  • immer die Warnung, dass Parameter in Abfragen, die nicht grafisch dargestellt werden können, nicht zulässig sind ??

    Hallo,

    da hattest Du MS Query verwendet? Der Designer unterstützt nur einfach Abfragen; einfach auf "SQL" umstellen, dann kannst Du es eingeben.

    Die Abfrage kannst Du ohne IIF ganz einfach über eine OR Bedingung im WHERE lösen, also z.B.

    ...
    WHERE (DeinFeld = ? OR ? = 'Alle')

    Dann musst Du zwar den Parameter zweimal mappen, aber das stellt ja kein Problem da. Hier mal ein Mini-Beispiel auf AdventureWorks - AddressId, in der Abfrage sind zwei Parameter, die beide auf die Zelle A2 gemappt sind; gibt man 0 ein, werden alle Adressen angezeigt, sonst nur die passende zur AddressId.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Donnerstag, 19. Februar 2015 10:51
  • Danke Olaf,

    ich versuch das nach der Mittagspause. Melde mich.

    Gruß

    Maczac

    Donnerstag, 19. Februar 2015 11:09
  • Hallo Olaf,

    das mit dem "einfach" gestaltet sich doch schwieriger.

    Die bestehende ODBC Verbindung kann ich nicht umstellen. Er erwartet einen anderen Wert bei Parameter 2. Ich habe dann via Daten/ andere/ SQL Client 11 das Ganze versucht und in den Verbindungseigenschaften die Parameter eingetragen... selbes Spiel. Liegt das an Datenkonflikten seitens Excel und meinen Rohdaten?

    Gruß

    Donnerstag, 19. Februar 2015 12:25
  • Das habe ich jetzt nicht ganz verstanden, was hier das Problem ist. Die ODBC Verbindung musst Du nicht ändern, nur die Abfrage. Die verwendeten Datentypen müssen natürlich übereinstimmen, sonst gibt es Fehler. Welche genauen Meldungen gibt es denn?

    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Donnerstag, 19. Februar 2015 12:49
  • Ungültiger Parametertyp. Microsoft Excel erwartet eine andere Art von Wert.

    kann leider noch kein Bild einfügen :)

    Ich habe die bestehende ODBC Verbindung genommen, Befehlstyp steht auf SQL. Dann habe ich im unteren Fenster den Befehlstext um die Fragezeichen (Parameter) ergänzt. Dann fragt Excel die Bezüge ab. Ich setze den ersten Bezug... klappt. Beim zweiten Bezug kommt dieser Fehler

    Donnerstag, 19. Februar 2015 12:54
  • Hallo,

    nach weiteren Versuchen hat es geklappt!!

    Ich hatte als Zelle ein Listenfeld einer Abfrage, um die konkreten Auswahlmerkmale zu haben. Ich hab nun die Parameter auf eine freie Zelle gemappt und in diese Zelle einen Bezug auf die Listenauswahl.

    Damit geht es komischer Weise. Hab es zwar nicht verstanden, aber es funktioniert :)

    Donnerstag, 19. Februar 2015 14:06
  • Mark the answer, that helped you, as an Answere please!
    Freitag, 20. Februar 2015 07:24