Office: (Office 2007) Inhalt einer Zelle als Kriterium in MS Query

Helfe beim Thema Inhalt einer Zelle als Kriterium in MS Query in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich stehe vor dem Problem, Daten vom SQL-Server auf einem Excel-Sheet anzeigen zu lassen. Das gelingt mir prinzipiell über MS Query,... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von jazzmana, 30. August 2005.

  1. Inhalt einer Zelle als Kriterium in MS Query


    Hallo zusammen,

    ich stehe vor dem Problem, Daten vom SQL-Server auf einem Excel-Sheet anzeigen zu lassen. Das gelingt mir prinzipiell über MS Query, wobei ich die GESAMTE Tabelle einlese oder manuell innerhalb MS Query Kriterien angebe wie
    (project.project_number='01par')

    Sinn meiner Abfrage soll es aber sein, die Daten abhängig vom Inhalt einer Zelle auf dem Excel-Sheet zu filtern. In Zelle B3 steht also z.B. 01par

    Je nachdem, welchen Wert ich dann in Zelle B3 eintrage (über ein DropDownFeld), sollen die Daten vom Server aktualisiert und angezeigt werden.

    Versucht habe ich es innerhalb von MS Query bereits mit:
    Tabelle1!$B$3, was zu einem Syntaxfehler geführt hat.

    Ich hoffe, ich konnte mich mit meinen geringen Excel-Kenntnissen halbwegs verständlich ausdrücken.

    Viele Grüße,
    Axel

    :)
     
    jazzmana, 30. August 2005
    #1
  2. Hallo

    Beispielabfrage
    Das Kriterium steht in C1

    "SELECT Bereich.Kostenstelle, Bereich.Kostenart, Bereich.Betrag" & Chr(13) & "" & Chr(10) & "FROM `D:\Rainer\DB`.Bereich Bereich" & Chr(13) & "" & Chr(10) & "WHERE (Bereich.Kostenstelle=" & Range("C1") & "))
     
  3. Hallo

    habe den Hinweis von IRamses dankbar aufgenommen und versucht umzusetzen. Um es noch einmal deutlich zu machen: ich habe bei meinen Versuchen bisher keinen VBA-Code verwendet, sondern lediglich unter Daten/Externe Daten importieren eine neue Abfrage erstellt, die sich auf eine SQL-Server-Tabelle als Basis bezieht. Man bekommt dann ja mit Microsoft Query die Möglichkeit, ähnlich wie in Access, Felder auszuwählen und Filterkriterien anzugeben. Genau an diesem Punkt versuche ich nun, IRamses' Idee umzusetzen. Der aus der graphisch zusammengeklickten Abfrage erzeugt SQL-String sieht nun folgendermaßen aus:

    SELECT tblProjekte.ProjectID, tblProjekte.ProjektName, tblProjekte.ProjektLeiter, tblProjekte.Projektbeschreibung
    FROM microm_test.dbo.tblProjekte tblProjekte
    WHERE (tblProjekte.ProjectID=' & range(''ODBC-Import!$C$4") & ')

    Leider wird mir immer noch kein Datensatz angezeigt, obwohl es einen Match zum Feldinhalt von C4 auf dem Worksheet ODBC-Import gibt.

    Was mache ich hier falsch!?
    Bin für jeden Hinweis dankbar...
    Gruß, Axel
     
    jazzmana, 1. September 2005
    #3
  4. Inhalt einer Zelle als Kriterium in MS Query

    Hallo

    Betrachte dir nochmal GENAU die Syntax wie ich sie geschrieben habe.
    Wenn du mit VBA auf eine andere Tabelle verweist, muss es heissen

    " & Worksheets("ODBC-Abfrage").Range("C4") & "
     
  5. Hallo nochmal,

    ich habe den Code aus dem letzten Vorschlag 1:1 eingefügt, was dann zu einem Syntax-Error geführt hat. Hat es evtl. etwas mit den unterschiedlichen Hochkommas zu tun (einfach, doppelt). Mein SQL-String, den ich im Query-Fenster sehe beginnt ja nicht, wie sonst in VBA üblich als Stringkette mit Anführungszeichen, sondern direkt mit Select...

    Habe mal ein Bild angehängt, auf welchem mein derzeitiger Status zu erkennen ist. Vielleicht hilft das ja bei der Lösung des Problems.

    Ich bin mit meinem Latein für heute am Ende!

    Gruß Axel (und vielen Dank für die Anregungen bis jetzt)
     
    jazzmana, 1. September 2005
    #5
  6. OfficeUser Neuer User
    Hallo

    du musst bloss meinen ersten Beitrag richtig lesen.

    Speziell die Anordnung der Anführungszeichen !!

    Zeichne die Abfrage in einem Makro, weiss dieses Makro einer Schalftfläche aus der Symbolleiste Formular zu und schon rutscht die ganze Sache automatisch :-)

    An die Abfrage wird aus dem Makro heraus ein String übergeben:

    "SQL-Select...." & Worksheets("Tabelle").Range("C4") & ")"

    und den musst du bloss zusammenbauen.

    Anstelle deines gesuchten Wertes den du mit der Makroaufzeichnung übergibst, musst du nur die Anweisung auf den Zellbereich geben. Wenn es die aktuelle Tabelle ist, dann reicht auch

    "SQL-Select...." & Range("C4") & ")"

    So sieht es vorher aus in meinem Beispiel

     ABCD
    13   
    2    
    3    
    4    
    5KostenstelleKostenartBetrag 
    63312 
    7    
    und so danach

     ABCD
    11   
    2    
    3    
    4    
    5KostenstelleKostenartBetrag 
    61110 
    71211 
    81413 
    9    
    Dazu wurde dieses Makro aufgezeichnet und das Abfragekriterum auf Zelle "A1" angepasst

    Code:
    Hoffe das hilft

    Schau dir speziell den Select-String an

    Gruss Rainer
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    OfficeUser, 2. September 2005
    #6
  7. Hallo zusammen,

    vielen vielen Dank für die Anregungen und Hilfen. Das Aufzeichnen von Makros ist wirklich eine wunderbare Idee gewesen, schnell an den korrekten Code mit allen Feineinstellungen zu kommen. Diese Möglichkeit werde ich in Zukunft häufiger nutzen. Da war ich wohl mit meinem Screenshot-Status auf der falschen Baustelle...

    Hier nun mein Code, der funktioniert:

    Code:
     
    jazzmana, 5. September 2005
    #7
Thema:

Inhalt einer Zelle als Kriterium in MS Query

Die Seite wird geladen...
  1. Inhalt einer Zelle als Kriterium in MS Query - Similar Threads - Inhalt Zelle Kriterium

  2. Auf die nächst mögliche Zelle mit Inhalt zugreifen

    in Microsoft Excel Hilfe
    Auf die nächst mögliche Zelle mit Inhalt zugreifen: Einen schönen Sonntag wünsche ich. Ich möchte mit folgendem Code auf die nächst mögliche Zelle mit einem Wert zurück greifen. Der Code nimmt aber immer den vorherigen Wert in der Zelle. Wenn die...
  3. Zelle per VBA auf ihren Inhalt prüfen und reagieren sowie bei Änderung

    in Microsoft Excel Hilfe
    Zelle per VBA auf ihren Inhalt prüfen und reagieren sowie bei Änderung: Hallo zusammen, ich habe mit etwas verheddert und hoffe auf Eure Hilfe. Die Felder B111 und B112 sind zu Beginn LEER. B111 bietet ein Dropdown-Menü an, welches im Falle der Auswahl "Angebot mit...
  4. Prüfung unterschiedlicher Zellen auf Inhalt und Konsequenz

    in Microsoft Excel Hilfe
    Prüfung unterschiedlicher Zellen auf Inhalt und Konsequenz: Hallo zusammen, ich habe einen Code, bei dem ich mehrere voneinander getrennte Zellen auf Befüllung prüfe. Wenn ich mindestens eine nicht befülle, erscheint eine Fehlermeldung und das Script...
  5. Inhalt Zelle inkl. bedingter Formatierung übernehmen

    in Microsoft Excel Hilfe
    Inhalt Zelle inkl. bedingter Formatierung übernehmen: Hallo zusammen, gibt es eine Möglichkeit den Wert einer Zelle inkl. bedingter Formatierung in einem anderen Tab zu übernehmen? Beispiel: Tab1 Zeilen 1 bis 5 in Zelle C werden die Summen aus...
  6. Zeilen löschen wenn eine Zelle der Zeile einen bestimmten Inhalt hat

    in Microsoft Excel Hilfe
    Zeilen löschen wenn eine Zelle der Zeile einen bestimmten Inhalt hat: Hallo, ich brauche mal wieder eure Hilfe. Für die beschriebene Aufgabe benutze ich folgenden Code der soweit auch gut funktioniert: Code: Sub ZeileLöschen() Dim Bereich As Range Dim Zelle As...
  7. Wenn Formel= Wenn etwas erfüllt, zeige Inhalt einer Zelle

    in Microsoft Excel Hilfe
    Wenn Formel= Wenn etwas erfüllt, zeige Inhalt einer Zelle: Hallo zusammen, komische Frage die ich da habe, und Google spuckt mir immer das selbe aus, mit dem ich nix anfangen kann. Ich möchte, dass in der Zelle B1 ein Wert angezeigt wird, der in A1...
  8. Zellen Inhalt zurückgeben

    in Microsoft Excel Hilfe
    Zellen Inhalt zurückgeben: Hallo Ich suche eine Möglichkeit über VBA oder mittels Formel, den Zellwert von Spalte A der aktiven Zeile zurückzugeben. Variante 1 der cursor steht in einer beliebigen Spalte Variante 2 die...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden