Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
400to404
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
400to404
400to404
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datenimport gesteuert über Kombo-Box

Datenimport gesteuert über Kombo-Box
Thomas
(Dieses Posting bezieht sich auf meine Anfrage vom 18.03. um 21:11:13 und ist dort ebenfalls eingestellt. Ich hoffe, dass ich mit diesem Doppeleintrag keine Verwirrung stifte.)
Hallo Rainer,
vielen Dank für Deine Bemühungen. Das große Problem, dass ich beim Datenimport habe, sind die unterschiedlichen Namen der Access-Tabellen.
Vielleicht sollte ich mein Problem etwas ausführlicher schildern:
1. Ich habe eine Access-Datenbank aus der ich bedarfsweise Daten (Tabellenblätter) in meine Exceldatei überführen möchte.
2. Der Name des benötigten Access-Tabellenblattes wird in Excel über eine Kombo-Box ausgewählt (=und in eine Hilfszelle geschrieben).
3. Gesteuert über eine Schaltfläche (Button) in meiner Excel-Datei möchte ich nun das Access-Tabellenblatt, dessen Namen in der Hilfszelle abgelegt ist, in ein definiertes Tabellenblatt in meiner Exceldatei importieren.
Ich scheitere allerdings auch schon seit Tagen und habe immernoch keine Idee. Deshalb bedanke ich mich in jedem Fall ganz herzlich für Deine Bemühungen. Vielleicht gehe ich die Sache auch komplett falsch an. Alternative Lösungsvorschläge nehme ich dankend an.
Beste Grüße
Thomas

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Datenimport gesteuert über Kombo-Box
Thomas
Vielen Dank Oberschlumpf,
ich habe Deine Antwort gerade gelesen und werde es gleich mal ausprobieren.
Vorab schonmal ein herzliches Dankeschön. Werde mich aber wieder melden, sobald es funktioniert.
Gruß
Thomas
HippHippHurra. Dankeschön.
thomas
Moin Oberschlumpf,
obschon Du mir eine tolle Lösung geliefert hast, musste ich als VBA-Greenhorn noch eine Weile kämpfen. Aber jetzt klappt es. Dieses Problem hat mich schon seit Tagen verfolgt.
Euer Durchlaucht. Ich bin zu Dank verpflichtet.
Hartnäckig gemeckert hat meine Maschine bei der Zeile .SourceDataFile = " (...). Solche Objekte mag er nicht unterstützen. Dann eben nicht. Laienhafter Weise habe ich die Zeile irgendwann gelöscht und dann gings.
Dank auch für Deine Zeilen zum Aktualisieren des Diagramms. Jedoch scheint es dort noch Ärger zu geben. Nach dem Aktualisieren habe ich keine Säulen mehr im Diagramm. Mein nächstes Ziel. Attacke.
Ich wünsche Dir ein nettes Wochenende.
Gruß
thomas
Anzeige
Halt!! Stopp!...nicht weglaufen :-)
Oberschlumpf
Hi Thomas
Zuerst einmal freuts mich natürlich, dass ich helfen konnte :-)
Jetzt möcht ich Dir auch bei dem noch bestehenden Problem helfen.
Denn da bin ich nich ganz unschuldig dran :-)
Du darfst die Zeile
.SourceDataFile = "D:\Personen\datenbank.mdb"
nicht löschen.
Denn in dieser Zeile wird Excel ja "mitgeteilt", aus welcher Datenbank Excel die Daten bekommt.
Source = Quelle
Und das Löschen dieser Zeile ist auch der Grund, warum in Deinem Diagramm nix mehr angezeigt wird - weil - ohne Datenquelle keine Balken :-)
So, dass erst mal zur Erklärung. Jetzt zur (hoffentlichen) Lösung :-)
Du musst die Zeile
.SourceDataFile = "D:\Personen\datenbank.mdb"
wieder einfügen, und den Dateipfad (hier D:\Personen\) gegen DEN Pfad wechseln, in dem Deine Datenbank gespeichert ist.
Wenn sie z Bsp in C:\ gespeichert ist, dann muss die Zeile so aussehen:
.SourceDataFile = "C:\datenbank.mdb"
Deine Datenbank-Datei heißt doch datenbank.mdb, oder?
Wenn dem nicht so ist, musst Du auch den Dateinamen anpassen.
So, ich hoffe, dass nach diesen notwendigen Änderungen, die ich leider zu erwähnen versäumte, die Zusammenarbeit zwischen Excel & Access auf Deinem PC reibungslos verläuft :-)
Ciao & n schönen Sonntag noch
Thorsten
Anzeige
AW: HippHippHurra. Dankeschön.
Laufzeitfehler
Hallo Oberschlumpf,
sehr nett, dass Du Dich nochmal gemeldet hast. Mein Diagrammproblem habe ich noch nicht im Griff und es wäre klasse, wenn es an der Zeile
.SourceDataFile = "F:\test\datenbank.mdb" liegt.
Also den richtigen Pfad habe ich schon eingestellt. Gleiches gilt für die Zeile mit dem Query Aufruf oben in Deinem Code.
Mit dieser Codezeile erhalte ich nach dem "Sub/UserForm Ausführen" die Meldung Laufzeitfehler 438 und
Objekt unterstützt diese Eigenschaft oder Methode nicht.
Verzichte ich auf die Zeile, läuft das Makro anstandslos durch und meine Daten werden aus der Datenbank auch aktualisiert und ins Tabellenblatt eingetragen. Dafür hat das Diagramm dann aber das zeitliche gesegnet. Ich checks auch nicht.
Der gleiche Effekt, sprich Daten aktualisiert und Diagramm gecrasht, stellt sich übrigens auch ein, wenn ich mich als 0815-Excelanwender artig mit meiner Maus durch die Menüs clicke und meine Datei aus Access sozusagen manuell aktualisiere.
Aber, ich halte die Fahne weiter hoch, der Tag hat immerhin noch einige Stunden und morgen beginnt eine neue Woche.
Solltest Du jedoch dazu einmal wieder eine Idee haben, wäre es prima, wenn Du sie mir hier ins Forum stellen könntest.
Munter bleiben
Thomas
Anzeige
AW: HippHippHurra. Dankeschön.
Oberschlumpf
Hi Thomas
Da ich mit der Bsp-Datei auf meinem PC keine Probleme habe, un Du alle Korrekturen vorgenommen hast, die notwendig waren (Dateipfad), ist es für mich schwer, den Fehler zu rekonstruieren.
Wichtig wäre vielleicht noch die Position des Tabellenblattes mit dem Diagramm.
Dieses Tabellenblatt muss an erster Stelle stehen
Eine weitere mögliche Fehlerquelle ist vielleicht die Tatsache, dass Du mit Excel 2000 und ich mit Excel Xp (2003) arbeite.
Daher schlage ich vor, dass Du erst den Datenimport aus Access mit dem Makrorecorder durchführst und dann den sich daraus ergebenen VBA-Code anstelle von meinem "Import-Code"
einfügst.
Mach eine Sicherheitskopie von Deiner Excel-Datei!
Mit dem Makro-Recorder gehst Du so vor:
1. Öffne eine neue Excel-Tabelle und markiere die Zelle A1
2. Klick in Extras/Makro/Aufzeichnen. Es öffnet sich ein Fenster. Klick auf OK. Von dem Fenster sind nur noch 2 Symbole zu sehen.
3. Klick nun auf Daten/Externe Daten importieren/Importieren und wähle die Datenquelle aus (F:\Test\Datenbank.mdb)
4. Das sich geöffnete Fenster kannst Du mit OK wieder schließen.
Merke Dir bitte an dieser Stelle, welcher Benutzername bei Dir eingetragen ist.
5. Es kann sein, dass Du nach einem Passwort gefragt wirst. Einfach mit OK weiter.
6. Jetzt musst Du eine Tabelle aus der Datenbank auswählen.
7. Und Klick auf OK. A1 ist die Zelle, in die die Daten importiert werden sollen.
VBA-Code einfügen:
1. Öffne mit Alt-F11 den VBA-Editor
2. Wähle im linken Fenster Modul1 (in Module)
3. Kopiere den gesamten Quellcode, beginnend mit
With ActiveSheet.QueryTables.Add(...
und endend mit
End With
in die Zwischenablage.
4. Öffne nun Deine Excel-Datei und ruf auch dort mit Alt-F11 den VBA-Editor auf.
5. Suche in meinem Code die Zeilen
With ActiveSheet.QueryTables.Add(Connection:=Array... usw.
und
End With
und lösche incl. dieser 2 Zeilen alles was dazwischen ist.
6. Über Bearbeiten/Einfügen fügst Du an der Stelle den von Dir aufgezeichneten Code ein.
Und nun versuch es erneut :-)
Wenn das auch alles nichts hilft, dann lade bitte noch mal Deine Datei auf den Server.
Wichtig ist, dass Tabellenblattanordnung und -namen erhalten bleibt. Daten kannst Du löschen.
Ciao
Thorsten
Anzeige
Datenübernahme variabilisieren
Thomas
Hallo Oberschlumpf,
entschuldige, dass ich mich gestern nicht mehr auf Deinen Eintrag gemeldet habe. Ich bin zur tagesschau resigniert ausgeschieden und habe erst heute früh den Kampf wieder aufgenommen.
Ich bastel weiterhin an einer Lösung und bin immernoch erfolglos. Anbei sende ich Dir ein aufgezeichnetes Makro meiner manuellen Datenübernahme. Wie gesagt, manuell ist alles kein Problem. Schwierigkeiten bereitet die Variabilisierung, so dass in Abhängigkeit von der Auswahl in der Kombo-Box eine Tabelle aus Access nach Excel geholt wird. Die Access-Tabellen können dabei unterschiedlich groß sein und haben auch teilweise unterschiedliche Spaltenbeschriftungen.
Mein Problem ist auf Grund meiner Schusseligkeit zweimal im Forum gelistet. Auf meinen Eintrag "datenimport von Access nach Excel" hat ein Herr Klemke eine VBA-Routine als Beispieldatei gepostet. Leider bekomme ich auch dieses Gerät nicht in die Gänge, weil "benutzerdefinierte Bezüge fehlen", von denen ich keine Ahnung habe.
Vielleicht fällt Dir ja nochmal eine Zeile ein, wie ich meinen Alptraum Datenimport flexibilisieren kann.
Gruß
Thorsten

Sub Makro1()
With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=MS Access Database;DBQ=C:\test\datenbank.mdb;DefaultDir=C:\test;DriverId=281;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5" _
), Array(";")), Destination:=Range("A1"))
.Sql = Array( _
"SELECT `Tbl-BWL`.ID, `Tbl-BWL`.StudId, `Tbl-BWL`.`1 Semester`, `Tbl-BWL`.`2 Semester`, `Tbl-BWL`.`3 semester`, `Tbl-BWL`.`4 Semester`, `Tbl-BWL`.`5 Semester`, `Tbl-BWL`.`6 Semester`, `Tbl-BWL`.`7 Seme" _
, _
"ster`, `Tbl-BWL`.`8 Semester`, `Tbl-BWL`.`9 Semester`, `Tbl-BWL`.`10 semester`" & Chr(13) & "" & Chr(10) & "FROM `C:\test\datenbank`.`Tbl-BWL` `Tbl-BWL`" _
)
'Das Select möchte ich verallgemeinern.
'Wie z.B. durch .CommandType = xlCmdTable
'CommandText = ARRAY (tbl-" & Sheets(1).Range("E3").Value)
'wenn ich diese Zeilen stattdessen einsetze, erhalte ich eine Fehlermeldung.
'Das Ziel dieses Makros soll schließlich sein, das mir ein Access-Tabellenblatt
'egal welcher Spalten- und Zeilenanzahl in Excel übertragen wird.
.FieldNames = True
.RefreshStyle = xlInsertDeleteCells
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.HasAutoFormat = True
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.SavePassword = True
.SaveData = True
End With
End Sub

Anzeige
AW: Datenübernahme variabilisieren
23.03.2004 18:52:56
Dieter
Hallo Thomas,
ich habe dir in dem alten Thread noch eine Ergänzung eingestellt.
Die kannst du unter
https://www.herber.de/forum/archiv/400to404/t400452.htm
einsehen.
Wenn es damit Probleme gibt, melde dich bitte.
MfG
Dieter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige