Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1200to1204
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
Inhaltsverzeichnis

Deklarierung im Excel-Editor

Deklarierung im Excel-Editor
Werner
Hallo Freunde,
habe mal eine Grundsatzfrage zur Deklarierung von anderen Applikationen (z.B. ACCESS oder WORD)
im EXCEL-Editor, und zwar für den Fall, das diese schon geöffnet sind.
Beispiel: Eine ACCESS-Datenbank
namens "MeineDatenbank" und die Tabelle "MeineTabelle" darin ist beim Start des EXCEL-Makro, der auf sie Bezug nimmt, bereits geöffnet. Mit der Anweisung "CreateObject" kann man dann wohl nicht arbeiten?! Was ist also zu tun, um dem EXCEL-Editor solche fremden Objekte bekannt zu machen?
Vielen Dank im voraus! Grüße Werner R.

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

Betreff
Benutzer
Anzeige
AW: Deklarierung im Excel-Editor
25.02.2011 09:38:26
mumpel
Hallo!
Bei Early-Binding musst Du einen Verweis auf die Bibliotheken von Access und Word setzen.
Wenn Du Late-Binding nutzen möchtest, dann lautet die korrekte Deklaration Dim MeineDatenbank As Objectcolor> und ein Verweis ist nicht erforderlich.
Auch bei Early-Binding kann man CreateObject nutzen, nur nicht auf die Weise wie bei Late-Binding.
Gruß, René
Nachtrag
25.02.2011 09:40:29
mumpel
Mit GetObject kannst auf bereits geöffnete Anwendungen zugreifen.
Korrektur
25.02.2011 09:59:43
Werner
Hallo Mumpel,
meine Grussanrede war versehentlich falsch, bitte um Entschuldigung. Werner R.
CreateObject
25.02.2011 09:56:30
Werner
Hallo Rene,
herzlichen Dank f. deine Hinweise!
In den Lehrbüchern ist meist von geschlossenen Applikationen die Rede, die dann über CreateObject
geöffnet werden.
Der Unterschied zw. Early Binding und LateBinding ist mir bekannt.
Wenn ich dich richtig verstehe, reicht also im Excel-Editor bei Late Binding die Dimensionierung einer Variablen als Datenbank
und die Verwendung der "CreateObject"-Anweisung aus, damit das Datenbank-Objekt und auch die bereits
geöffnete Tabelle dem EXCEL-Editor bekannt ist? Genauer: Einmal "CreateObject" für die Datenbank, und
dann ein weiteres "CreateObject" für (ebenfalls bereits geöffnete) die Tabelle?
Ich hatte "CreateObject" immer als Neuschaffung eines im Arbeitsspeicher bis dahin noch nicht existierenden
Objekts verstanden, aber diese Anweisung kann sich offenbar auch auf bereits im Arbeitsspeicher
existierende Objekte beziehen. Stimmt das so?
Diese Frage ist für mich deshalb so wichtig, weil sie sich auf mehrere Makros beziehen kann, bei denen
jeweis EXCEL und eine weitere Appliklation geöffnet sein sollen.
Die Lehrbücher bringen meist nur einzelne Anwendungsbeispiele, weil sie sich i.d.R. nur auf eine einzige
Software beziehen, und da kommt das Kombinieren von zwei Softwareprogrammen meist etwas
stiefmütterlich weg.
Gibt es irgendwo ein ganz einfaches Beispiel für ein solches Zusammenspiel zwischen EXCEL und ACCESS?
Grüße Werner R.
Anzeige
AW: CreateObject
25.02.2011 10:15:37
mumpel
Nein. Wenn die Datenbank bzw. Access schon gestartet wurde, dann arbeitet man mit GetObject. Beispiel für Outlook.
Rückfrage
25.02.2011 10:17:56
mumpel
Aber was genau möchtest Du denn erreichen?
Zu deiner obigen Rückfrage
25.02.2011 10:47:52
Werner
Hallo Mumpel,
noch eine Antwort zu deiner Rückfrage:
Ich habe, das ist eine der Anwendungen, eine Excel-Tabelle. In Spalte A steht eine eineindeutige
laufende Nummer, in Spalte B stehen andere Excel-Daten, in diesem Fall Beispiele aus einem bestimmten
Gebiet.
Nun will ich von EXCEL aus auf die ACCESS-Tabelle "MeineTabelle" in einer ACCESS-Datenbank zugreifen.
Diese Tabelle ist eine elektronische Kartei, die aus zwei Feldern, einer laufenden Nummer und dem als Memo definierten Karteikartentext, besteht.
Wenn ich in der Excel-Tabelle in Spalte A in ein Feld mit einer laufenden Nummer clicke, soll eine
Ereignisprozedur ausgelöst werden, die zu der genannten Access-Tabelle springt und im Feld 1 der
Tabelle "MeineTabelle" diese laufende Nummer, am besten in einem Formular, sucht. Wenn diese
dort gefunden wird, sollen die laufende Nummer und der zugehörige Memo-Text in dem Formular als
aktueller Datensatz erscheinen.
Dazu will ich natürlich die ACCESS-Datenbank nicht bei jeder Aktivierung des Makro aktivieren
müssen, sondern öffne die Datenbank und die genannte Tabelle schon vorher manuell. So kann
ich in der EXCEL-Tabelle auf verschiedene laufende Nummern clicken und mir in ACCESS die den laufenden
Nummern zugeordneten Memo-Texte anzeigen lassen.
Also z.B.: Spalte B in Excel enthält Produktbezeichnungen, das Memofeld in ACCESS enthält längere
Erklärungen zu den einzelnen Produkten.
Das ganze soll in EXCEL innerhalb einer Baumstruktur ablaufen, in der jeder Ebene ein Worksheet
entspricht. Ich setze Excel und nicht bloß ACCESS ein, weil ich in EXCEL Arbeitsblätter mit Ereignis-
prozeduren ausstatten kann, ACCESS-Tabellen (ACCESS ist mir auch ansonsten weniger als EXCEL vertraut ist) jedoch offenbar nicht oder nicht so einfach wie in EXCEL.
Obige Ausführungen beantworte ich aufgrund deiner Rückfrage, wir befinden uns ja in einem EXCEL-Forum,
deshalb wollte ich mich hier auf die Möglichkeiten, vom EXCEL-Editor aus eine Verbindung zu ACCESS
herzustellen, beschränken, um die Sache nicht zu kompliziert zu machen.
Auf ACCESS bin ich gekommen, weil ich keine andere geeignete Karteikastensoftware gefunden habe.
Nochmals vielen Dank, beste Grüße! Werner R.
Anzeige
Prima!
25.02.2011 10:28:47
Werner
Hallo Mumpel,
dein Code sieht sehr gut aus! Damit sind offenbar sowohl Fälle erfasst, in denen die externe Applikation schon geöffnet ist, als auch der Fall, wo sie erst noch, durch den Makrocode, geöffnet werden muss.
Genau so etwas hatte ich gesucht. Bin dir wirklich überaus dankbar, besonders auch, weil ich
diesen Rahmencode, wie schon erläutert, mehrfach einsetzen will! Mit der Anweisung "GetObject"
werde ich mich mal in den Büchern und im Internet näher befassen und dann erste Programmierver-
suche in dieser Richtung starten.
Beste Grüße! Werner R.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige