Excel, ODBC, SQL - wie?

Hallo zusammen,

ich hab hier einen Windows XP-Rechner, Excel 2007, eine MySQL 4-Datenbank auf einer Linux-Schüssel und den passenden ODBC-Treiber. Ich habe per ODBC eine Verbindung zur MySQL-Datenbank hinbekommen, ich bekomme Daten von der Datenbank in das Excel-Worksheet, ich kann in den Properties der Verbindung SQL-Statements abgegeben und bekomme auch noch die richtigen Daten zurück.

Mit anderen Worten: ich hab alles im Griff.
Nun ja, fast alles.

Ich versuche nun, bestimmte Werte aus der Datenbank in bestimmte Zellen zu bekommen. Oder anders herum: ich möchte einer Zelle als Wert/Funktion/was immer eine SQL-Query geben. Sozusagen ein „SELECT name FROM table WHERE id=2“ und dann steht in der Zelle der entsprechende Wert aus der Datenbank.

Meine Fragen: gibt es in Excel eine solche Möglichkeit und wenn ja: wie macht man das? Oder muss ich mir in irgendeiner Sprache den Wolf programmieren und wenn ja: kennt jemand vielleicht eine fertige Lösung?

Meine Skills:
* MySQL: ok
* Excel: mager
* ODBC: null
* Sich in irgendeiner Sprache den Wolf programmieren: mager
* Besondere Kennzeichen: Windows hasst mich

Meine Versuche bislang:
* Tante Google genervt
* In Excel auf jeden Knopp gedrückt

Vielleicht hat ja jemand eine zündende Idee.

Gruß,
Stefan

Hallo Stefan,

es würde mich sehr überraschen wenn du hier Hilfe bekämst bei der Frage.
Mein Tipp ist, klicke links auf den Brettnamen, dann in der Brettbeschreibung auf den Briefkasten neben dem Mod-namen und bitte um Verschiebung ins VB-Brett.

Da kennt vielleicht Rainer eine VB-Lösung. Ich kann dann probieren die in VBA umzusetzen.

Gruß
Reinhard

es würde mich sehr überraschen wenn du hier Hilfe bekämst bei
der Frage.
Mein Tipp ist, klicke links auf den Brettnamen, dann in der
Brettbeschreibung auf den Briefkasten neben dem Mod-namen und
bitte um Verschiebung ins VB-Brett.

Wow. Das VB-Brett. So weit wollte ich eigentlich gar nicht gehen. Ich hatte gedacht, meine Anfrage wäre nicht so sonderlich speziell und seit Jahren gelöst.

Nun, dann geh ich mal zu den VBlern, aber erst demnächst, und warte hier noch ein bisschen.

Vielen Dank schon mal für die Richtung.

Gruß,
Stefan

Hallo Stefan,

ich hab hier einen Windows XP-Rechner, Excel 2007, eine MySQL
4-Datenbank auf einer Linux-Schüssel und den passenden
ODBC-Treiber. Ich habe per ODBC eine Verbindung zur
MySQL-Datenbank hinbekommen, ich bekomme Daten von der
Datenbank in das Excel-Worksheet, ich kann in den Properties
der Verbindung SQL-Statements abgegeben und bekomme auch noch
die richtigen Daten zurück.

Ich versuche nun, bestimmte Werte aus der Datenbank in
bestimmte Zellen zu bekommen. Oder anders herum: ich möchte
einer Zelle als Wert/Funktion/was immer eine SQL-Query geben.
Sozusagen ein „SELECT name FROM table WHERE id=2“ und dann
steht in der Zelle der entsprechende Wert aus der Datenbank.

Deine Fragestellung musste ich mir mehrmals durchlesen, aber ich glaube verstanden zu haben, dass du die Daten bereits in Excel hast, nur nicht an der gewünschten Stelle. Richtig?

Falls die Abfrage immer nur einen Wert zurückgibt z.B. Datum der letzten Datenbankaktualisierung, dann sollte das ganz easy sein. Gib der Quell-Zelle, in der dieser Wert steht einen Namen (–> http://www.office2007-hilfe.de/viewtopic.php?p=321#321) z.B. „Datum“ und trag in der Ziel-Zelle ganz einfach „=Datum“ ein.

Sollte die Abfrage mehre Datensätze liefern, von denen du bestimmte Werte in bestimmten Zellen sehen möchtest, dann kannst du unter Umständen mit der Funktion SVERWEIS arbeiten. In diesem Fall einfach nochmal nachfragen. Es hier sicher genug Leute, die Dir dann weiterhelfen können.

MfG
Stephan

Deine Fragestellung musste ich mir mehrmals durchlesen,

So wie ich deine Antwort.

aber
ich glaube verstanden zu haben, dass du die Daten bereits in
Excel hast, nur nicht an der gewünschten Stelle. Richtig?

Nein, die Daten sind in der Datenbank. In Excel habe ich beispielsweise in Zelle A1 die Zahl 5 und möchte nun in Zelle B1 als Ergebnis einen Teil des Datensatzes 5 haben. Zum Beispiel den Nachnamen aus dem fünften Datensatz in einem Adressbuch.

In Feld B1 müsste ich also so etwas angeben wie „= SELECT nachname FROM adressbuch WHERE id=A$1$“. Das das nicht funktioniert, sieht jeder, aber ich frage mich, ob es für eine solche Abfrage eine Lösung gibt.

Gruß,
Stefan

Hallo Stefan,

Nein, die Daten sind in der Datenbank.

schade.

In Feld B1 müsste ich also so etwas angeben wie „= SELECT
nachname FROM adressbuch WHERE id=A$1$“. Das das nicht
funktioniert, sieht jeder, aber ich frage mich, ob es für eine
solche Abfrage eine Lösung gibt.

Man kann das eventuell durch Umwege erreichen. Ich arbeite im Büro mit MSSQL und verlinke die Tabellen oder Queries per ODBC in Access-Datenbanken, um die Daten dort noch etwas aufzubereiten. Von Excel aus kann man ohne Probleme auf Access-Datenbanken zugreifen und über MS-Query (ist in Excel eingebaut) kann man dann (falls notwendig) SQL-Abfragen programmieren, die an beliebiger Stelle ausgegeben werden können. Über Excel direkt auf einen SQL-Server zuzugreifen habe ich habe ich allerdings noch nie probiert.

Da ich mit der 2007er Version von Excel noch nicht wirklich gearbeitet habe, hier mal ein Link, der vielleicht helfen könnte: http://openbook.galileocomputing.de/excel_2007/excel…

MfG
Stephan

Da ich mit der 2007er Version von Excel noch nicht wirklich
gearbeitet habe, hier mal ein Link, der vielleicht helfen
könnte:
http://openbook.galileocomputing.de/excel_2007/excel…

Vielen Dank für den Link, aber soweit bin ich auch schon gekommen und es ich nicht ganz genau das, was ich will. Da ich hier im Brett keine Antwort wie „dazu klickt man einfach hier auf diesen Knopf“ bekommen habe, nehme ich an, dass es diesen Knopf nicht gibt und ich mir einen programmieren muss.

Ich werde jetzt also das VBA-Brett quälen müssen :wink:

Danke für die Hilfe,
Stefan