Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Variable Liste in VBA
Diana
Liebes Forum,
ich habe ein Problem. Ich lese mit einem VBA-Makro Messwerte aus. Diese Messwerte werden über einen Namen auf einem anderen Rechner angesprochen. Derzeit gebe ich diese Namen (Adressen) direkt in das Makro ein.
strSQL = "SELECT k055z02_0.Zeit, k055z02_0.A00100001, ..., ... FROM k055.k055z02 k055z02_0 WHERE (k055z02_0.Zeit Between {ts '" & strStart & "'} And {ts '" & strEnde & "'})"
Es sind sehr viele Adressen (hier in dem Beispiel heißt die Adresse: k055z02_0.A00100001 bzw. k055z02_0.Zeit), die dort abgerufen werden. Hin und wieder wird diese Liste verändert. Adressen kommen hinzu oder werden entfernt. Dann muss ich immer die Programmierung anpassen. Da ich die Übersicht der Adressen in einer Excel-Datei pflege, wollte ich wissen, ob es möglich ist, diese Liste dort zu übernehmen? In der Liste sind alle Adressen untereinander geschrieben. Das Tabellenblatt heißt "Ram1" und die Adressen stehen in der Spalte E untereinander.
Des weiteren habe ich noch ein Problem. Excel kann nur eine bestimmte Anzahl Spalten darstellen. Jede Adresse braucht eine Spalte. Bei Spalte IV ist Schluss. Ich habe aber mehr Adressen. Kann man in der Programmierung "sagen", dass mit Erreichung der Spalte IV ein neues Tabellenblatt aufgemacht wird und dann dort weitergeschrieben wird. Das wirkt sich ja dann auch auf den Tabellennamen aus, den ich derzeit automatisiert vergebe.
Ich lege mal die Original bas-Datei (als Zip-Ordner) bei. Dann kann man mein Problem wohl besser nachschlagen. https://www.herber.de/bbs/user/63837.zip
Schon einmal herzlichen Dank an all die netten HelferInnen
Lieben Gruß Diana

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Tabellenname weglassen...
14.08.2009 14:59:47
NoNet
Hallo Diana,
da hast Du ja eine "Monster-Abfrage" erstellt ;-)
2 Bemerkungen : Den Tabellennamen "k055z02_0" kannst du u.U. weglassen, d.h. anstelle
SELECT k055z02_0.Zeit, k055z02_0.A00100001, k055z02_0.A00100501,..."
genügt SELECT Zeit, A00100001, A00100501,... FROM k055z02_0 ...", wenn die Abfrage ihre Daten nur aus EINER Tabelle bezieht !
Mehr als 256 Spalten sind (bis Excel 2003) nicht möglich, also auch keine Aufsplittung auf 2 Tabellenblätter.
Allerdings halte ich das auch nicht für notwendig/sinnvoll, da Du damit die eigentliche Funktionalität von Excel "missbrauchen" würdest (Excel ist KEINE Datenbank !).
Ich kenne VisuData nicht (ist es die Applikation unseres "Ex-Kanzlers" ? ;-) - http://www.schroeder-straelen.de/de/visudata.html ?), aber in anderen Datenbanken (z.B. MS ACCESS) kann man bereits vorab Daten sinnvoll zusammenfassen oder teilen (in sog. "Abfragen" oder auch "Views") - evtl. kannst Du das mit VisuData auch machen und per Excel dann auf die gesplitteten Daten zugreifen ?
Übrigens : Eine "regelmässige" Änderung von Tabellen- oder Feldnamen ist "GIFT" für jede Datenbankauswertung, das sollte man tunlichst vermeiden !
Gruß, NoNet
Anzeige
AW: Tabellenname weglassen...
14.08.2009 15:09:01
Diana
Hallo NoNet,
danke für die schnelle Antwort. Ich kann nur nicht wirklich etwas damit anfangen, leider. Vielleicht verstehe ich dich auch nicht richitg.
Die Tabellen- oder Feldnamen werden auch nicht geändert. Es kommen lediglich Felder dazu oder werden entfernt, da sie nicht mehr benötigt werden. Hier wollte ich wissen, ob ich anstelle der Eingabe der Feldnamen auch auf eine Liste zurückgreifen könnte, da ich diese ohnehin in Excel pflege.
Gruß Diana
Verwende doch "SELECT * From k055z02_0"
14.08.2009 15:24:27
NoNet
Hallo Diana,
anstatt alle Felder EINZELN zu benennen, könntest Du auch SELECT * From k055z02_0 verwenden, damit werden alle AKTUELLEN Felder aus der Tabelle eingelesen.
Schau Dir auch mal meine Antwort in diesem Thread an - dort handelte es sich um eine ähnliche Frage :
http://www.ms-office-forum.de/forum/showthread.php?t=249625
Wenn Du mit meiner ersten Antwort "nichts anfangen" kannst, dann vermute ich, dass Du nicht sonderlich fit im Umgang mit auswertungen per SQL bzw. Datenbanken bist.
Dann halte ich dieses Projekt ehrlich gesagt für eine Nummer zu groß für Dich.
Aber : Was nicht ist, kann ja noch werden - besuche doch mal einen SQL-Kurs. Deine Firma wird das sicherlich bezahlen, wenn Du solche Aufgaben übernehmen sollst.
Meinst zumindest
NoNet
Anzeige

324 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige