PDA

Vollständige Version anzeigen : Office 8.0 Objektlibrary


Lupus
24.08.2001, 21:15
Mama ... schnief ..

ich bin's.... der Access-DAU ... heul ...
Versuche gerade eine eigene Menüleiste in VBA zu schreiben ... uhi .. uhi ..
Dazu habe ich mir unter www.accessprofipool.de (http://www.accessprofipool.de) die Datei Befehlsleisten.zip und Creativbars.zip runtergeladen.
in der PDF Datei steht:
-------------------------------------------------------------------
Vorrausetzung:
Es muss ein Verweis auf die >>Microsoft Office 8.0 Objektlibrary<< gesetzt werden.
-------------------------------------------------------------------

Lupus mal ganz blond fragt: wie mache ich das?? Irgendwo habe ich gelesen im Menü unter Extras--> Verweise .... Extra ist ja da, aber ich sehe keine Verweise ??

Andere Frage:
Die Access97 Datenbank soll später verteilt werden an Leute die kein Access haben, die Armen, also werde ich für die eine Runtimeversion erstellen (Developer Edition vorhanden).
Was muss ich bei der >> Microsoft Office 8.0 Objektlibrary<< dann beachten das diese auch in der verteilten Version vorhanden ist.
(Keine Angst, zum Thema "Menüleiste", so scheint mir, werde ich noch mehr Fragen haben :D)


Grüß menügeschädigter Lupus
P.S.
Option Compare Database
Option Explicit
Dim CreaBar As CommandBar
'Bekomme hier Fehler beim Kopilieren--> Benutzerdefinierter Typ nicht definiert
Dim CreaBarBtn As CommandBarButton

Scorefun
24.08.2001, 21:22
Hi Lupus,

Du mußt erst in irgendein Modul reingehen, dann siehste auch unter Menü Extras die Verweise und kannst die Office 8.0 aktivieren.

beim Erstellen des Setups werden die Dateien, auf die Verweise eingestellt sind, dann eigentlich automatisch mit übernommen.

HTH

Lupus
24.08.2001, 21:26
aaaach so ...

(mal schnell guggge tut ...)
jo .. gefunden .. und hacken ist nun drinn

danke dir ... scheee

Eigendlich übernommen oder sicher übernommen ?
Oder kann man das auch per VBA einstellen um 100% sicher zu sein ? frach halt so blond ...

Gruß glücklicher Lupus :D

Günther Kramer
24.08.2001, 21:29
Sag mal, stehe ich jetzt im Wald oder was?

Seit wann braucht man, um einen eigene Menüleiste in A97 anzulegen einen eigenen Verweis? Das kommt davon wenn man sich von solchen Seiten eine Beschreibung holt. Das sollte dir zu denken geben!

Mal im Ernst, ich lege bei meinen A97-Anwendungen auch eigene Menü- und Symbolleisten an und ich habe nicht den angesprochenen Verweis aktiviert. Den habe ich nicht einmal!

Mit Verweisen bin ich eh vorsichtig geworden. Die Sche..dinger machen nur Ärger! Wenn die die Datenbank als Runtime weitergeben willst und unbedingt so manches Schmankerl drinhaben willst, dann hol dir die Programmers Libraries von Johann http://members.aon.at/millpartner !
Da ist alles drin, was M$ als ActiveX in der Developerversion mitliefert, nur als API. Diesen Code kann man direkt in eigene Datenbanken einbinden und es gibt nie wieder Ärger mit Verweisen und ActiveX-Steuerelementen.

Lupus
24.08.2001, 21:37
mh ...

so was in der art dachte ich mir, das ein verweis ärger machen kann.
(wenn ich in der firma einen bekomme gibt das ja auch immer ärger .. hi hi)
deshalb fragte ich oben auch:
-------------------------------------
Eigendlich übernommen oder sicher übernommen ?
Oder kann man das auch per VBA einstellen um 100% sicher zu sein ? frach halt so blond ...
------------------------------------------

gibt es dazu irgenwo ein beispiel damit ich mich mal durchwurschteln kann?

Johanns seite werde ich auch mal durchforsten ..

Gruß neugieriger Lupus

Günther Kramer
24.08.2001, 21:49
Hallo Lupus,

na so ganz schlau werde ich aus deinem letztenPosting ja nicht.

Also, wenn du statt ActiveX den API-Code direkt einbaust, dann gibt es mit Sicherheit keinen Ärger, denn dann ist alles in der DB, was du zum Arbeiten brauchst.

Verweise sind dazu da, um auf Funktionen von externen Modulen zu verweisen (wie der Name ja schon sagt). Ist ein Verweis auf einem anderen Rechner, auf dem die Datenbank laufen soll, nicht vorhanden, dann erkennt Access nicht mal die einfachsten interen Befehle wzb. Left, String, Space, Len usw.
In einer MDB könnte man ja noch nachsehen, ob man den Verweis manuell setzen kann aber in einer MDE hast du keine Chance. Ebenso nicht, wenn du zwar einen MDB hast aber nur einen Runtime-Version von Access installiert ist.
Ich habe letztes Jahr mal versucht ein Modul zu schreiben, mit dessen hilfe man die Verweise sehen, löschen und neu setzen kann. Bei manchen PCs ging es, aber einige sind dabei abgestürzt. Es ist nicht toll, wenn bei 50% dann der Doc. Watson zu Besuch kommt. Aus diesem Grund habe ich mich eigentlich gegen Verweise und ActiveX entschieden. Manches Mal läßt es sich jedoch leider nicht vermeiden, aber das sollte dann eine Ausnahme sein.

Und um Menü- und Symbolleisten zu erstellen brauchst du keine weiteren Verweise!

Lupus
24.08.2001, 22:11
ahja .... so ist das mit den Verweisen .. einleuchtend

bin halt was Access betrifft ein Neuling.
Kann dir zwar dein Auto zerlegen und zusammenbauen (wenn auch immer wieder schrauben übrig bleiben) und es fährt.

Mit Access bastle ich zwar schon über 2 Jahre (ohne Programmierkenntnisse), aber VBA erst seit Dez 2000.
Mich wundert es nicht, wenn mache fragen nicht verstanden werden, liegt daran das ich selber nicht genau weiß was ich eigentlich wissen will. :D
Ich kämpfe mich so durch die Onlinehilfe und durch das WEB, aber kapiere meist gar nicht was die wollen, da werden halt Fachbegriff mit neuen Fachberufen erklärt ... (das treibt mir die Tränen in die Augen)
aber ich bin eine Kämpfer Natur ..

so .. das habe ich mir mal von der Seele reden müssen ..
Nun geht es mit besser und auf in den Kampf mit der Menüleiste von der ich noch keine Ahnung habe wie ich es machen werde, aber ich werde siegen,
ein Ziel,
viele Wege
und nur nicht verlaufen wenn doch,
dann nach dem Weg fragen .. habe ja euch

Gruß schreibwütiger Lupus

Günther Kramer
24.08.2001, 22:22
Hallo Lupus,

ist dir klar, wie man eigene Leisten in Access anlegen kann?

Menü "Ansicht - Menüleisten - Anpassen" -> Neu -> Name eingeben -> Symbolleiste nach oben ziehen -> Auf das Register "Befehle" klicken und die gewünschten Befehle auswählen und auf die Liste ziehen; Bei Kategorien gibt es ganz unten den Begriff "Neues Menü"; Klick das an und es erscheint bei "Befehle" der Begriff "Neues Menü"; Das kannst du auf die Leiste ziehen und nach belieben Ober-, Unter- und Unter-Untermenüsbauen; Ein Klick auf das eben eingefügte Menü mit der rechten Maustaste öffnet dir die Eigenschaften des Menüs und du kannst es anpassen. -> Ist deine Menüleiste fertig, klick noch einmal zurück auf den Karteireiter "Symbolleisten" -> Wähle den Namen deiner Leiste aus und klick auf Eigenschaften; Hier kannst du den Typ dann festlegen; Soll es eine Menüleiste sein, dann stellst du das hier ein. Es gibt noch mehr Einstellungen, aber die erklären sich von selbst.

Ich hoffe du kommst jetzt klar ;)

Lupus
24.08.2001, 22:32
danke dir ...

das kenne ich schon, hilft mir aber leider nicht weiter.
bisher habe ich meine Menüleiste über Makros erledigt. HinzufügenMenü und so ..
Aber ich will ja das VBA lernen, (da bin ich sowas von stur) deshalb will ich die menüleiste in VBA erledigen und anpassen an die einzelnen formulare.
normalerweise kann man ja ein Makro unter VBA abspeichern doch der befehl "HinzufügenMenü" ergibt dann nur
' ***** HinzufügenMenü-Aktion nicht verfügbar

also weiter kämpfen ...

Gruß verbissener Lupus :D

peppi
24.08.2001, 23:22
Oh Lupus ...
Du sprichst mir aus der Seele. Für mich ist vba auch immer noch ein Buch mit sieben (ach was, 50) Siegeln.
Deshalb habe ich mich jetzt selbst an die Hand genommen und mich zu einem Fernstudium für vba eingetragen.
Und was die Symbolleisten anbelangt: Wenn man die Anleitung von Günther liest, klingt das alles ganz einleuchtend. Ich weiß aber, daß ich vor dieser ganzen Symbolleisten-Thematik sitze wie der berühmte Ochs vorm Scheunentor. Bis jetzt habe ich es noch nie so hingekriegt, daß die Symbolleisten das machen was ich will. - Aber "... eines schönen Tages ..." (hörst Du mich singen ?).
Das hoffe ich auch übrigens immer noch im Hinblick auf die blöden Sicherheitseinstellungen mit System.mdw etc. Da habe ich mir auch schon seitenweise Literatur reingezogen und noch nie verstanden ...

Lupus
25.08.2001, 22:01
ich noch mal ..

fasse mal zusammen ob ich das richtig verstanden habe: :confused:
Für Menüleiste mit CommandBar brauche ich den verweis Microsoft Office 8.0 Objektlibrary.
Doch verweise können Probleme machen auf Systeme die die Microsoft Office 8.0 Objektlibrary gar nicht haben.
Also ist es besser eine Menüleiste zu machen ohne Verweis.
1te Möglichkeit ist es unter Menü "Ansicht - Menüleisten - Anpassen" -> Neu -> Name eingeben -> Symbolleiste nach oben ziehen .... usw.
2te Möglichkeit mit VBA unter dem Stichwort ?????????????? ups .. das war's

Kann mir jemand die notwendigen Stichworte liefern die ich mir in der Onlinehilfe anschauen sollte um das hinzu bekommen.

bitte bitte bitte bitte werde auch immer brav meine Bürokaffeetasse ausleeren und spülen :p

Grüß Spülteufel Lupus

Sascha Trowitzsch
26.08.2001, 09:52
Ich muss wieder mal mäkeln, Günther:

Deine Ansicht zu Verweisen verstehe ich nicht ganz.

Sowohl VB wie auch VBA ist komplett auf 'Verweisen' aufgebaut. Ohne die Runtime-Dlls funktioniert dieses Entwicklungssystem nicht! Wer das nicht mag (...wofür es durchaus gute Gründe gibt), der muss halt zu C++, Delphi oder einen anderen Basic-Compiler greifen, die alles komplett in die EXE packen.
Doch selbst Johanns API-Module arbeiten mit 'Verweisen': API-Befehle sind doch ebenfalls Verweise auf Betriebssystem-DLLs und auch da gibt es zuweilen Versionskonflikte. Je nach Betriebssystem funktionieren DLL-Aufrufe manchmal anders oder sind gar nicht vorhanden oder geben andere Funktionsergebnisse aus. (Nur als Beispiel: all die Funktionen, die mal mit Unicode umgehen können, oder bloß mit ANSI, oder die Netzwerkfunktionen.) In letzter Konsequenz müsste man da ja zu Assembler greifen!

Wo fangen also Verweise an, unsympatisch zu werden? Das ist doch eher eine philosophische Frage...

Die Office-Library ist jedenfalls (fast) unumgänglich, sobald man per Code mit Menü-Elementen oder Symbolleisten hantiert. Einen zusätzlichen Menü-Eintrag zu erzeugen kostet damit gerade mal 3 Zeilen, mit API eine ganze Seite. (Wobei die allermeisten Forumsteilnehmer - seien wir ehrlich - ohnehin kaum verstehen, wie die API-Module funktionieren; also werden auch nur einfach Snippets rumkopiert, was mindestens genauso fehlerträchtig ist).

Fazit für mich:
Soweit es geht, vertraue ich den MS-Librarys und API setze ich nur ein, wenn es nicht anders geht oder eine Library für irgendeine kleine Funktion überdimensioniert ist und die DB unnötig aufbläht.

Zum Schluss ein Beispiel für einen per Code gesetzten Verweis (auf das MS-Common Control OCX):

Dim R as Reference
Set R = References.AddFromFile("mscomct2.ocx")
Set R = Nothing

Cioa, Sascha

EricB
26.08.2001, 12:16
Hallo!

Jetzt auch noch mein Senf zu der Sache *ggg*!

Zum erstellen braucht man den verweis nicht. Willst du aber einzelne Einträge Enablen oder unsichtbar machen, dann muss der Verweis da sein!!!

Soweit ich weiß, darfst du die MSO8.dll auch mit der Runtime gar nihct weitergeben!!!

Ciao
Eric

Günther Kramer
26.08.2001, 12:20
Wo fangen also Verweise an, unsympatisch zu werden? Das ist doch eher eine philosophische Frage...

Da, wo man die DB als Runtime ausliefern will und die benötigten Verweise nicht installiert sind.

Oder, wenn man unseren AP-Mail-Manager Pro mit A97 verwendet und der Kunde hat O98 oder 2000.

Sascha Trowitzsch
26.08.2001, 12:44
Na, ich lasse nicht locker.

'Soweit ich weiß, darfst du die MSO8.dll auch mit der Runtime gar nihct weitergeben!!!'

Aber sicher!
Der Paket-Assistent packt sie mit ins Setup, wenn der Verweis gesetzt ist.

Abgesehen davon bringt ein Verweis auf Office-Objekte in der DB wohl auch nicht viel, wenn auf dem Zielsystem nicht irgendein Office-Produkt schon installiert ist, oder ? (...Und dann uíst die DLL auch schon da.)

Ciao, Sascha

Lupus
26.08.2001, 13:38
uhi .. ihr macht mir Mut ....

werde wohl aus Sicherheitsgründen die Menüleiste wieder mit Makros machen .. :(

eins weiß ich, das ich ohne die 8.0 Objektlibrary eine Fehlermeldung bekomme und
wenn ich z.B. DIM mnuMeines As Command... eingebe, erscheint immer so ein Fenster, dort ist ohne den Verweis auf die 8.0 Objektlibrary das CommandBar unbekannt !!

Sascha spricht von "Der Paket-Assistent" den gibt es doch erst ab Access 2000 ?
Ich aber habe Access 97 Developer Dingsda.

Wer Office 95, 97, 2000 hat, der hat auch die MSO8.dll ?
Egal welche Office, also mit oder ohne Access in seinem Office?

Als ich eben so ein einfachen Setup erstellt (Access97) habe, war die MSO8.dll jedoch nicht im Verzeichnis.

schnief .. was macht ein nicht Informatiker, ein einfacher Hobbybastler, wenn sich Experten nicht einig sind.

Er macht es so wie er es immer gemacht hat, mit Makros.

Aber weiter hier, ist interessant ... :D

Gruß makrobelasteter Lupus

Lupus
28.08.2001, 05:25
schnief .. liebt mich denn keiner mehr, habt ihr mich vergessen ?
ich kämpfe immer noch hiermit

also on top hiermit

Gruß schniefender Lupus

Schnuu
28.08.2001, 09:14
Hi

um die Verwirrung komplett zu machen: Jeder der Office Prof. installiert hat, hat auch die MS Office 8.0 Objectlib. Wennst eine DB mit DAO (97) oder ADO(2000) schreibst, mußt auch einen Verweis auf DAO oder eben ADO haben, sonst funktionieren die einzelnen Befehle nicht! Und man sollte es nicht glauben: Auch diese Dinge sind in der Standardinstallation von Access schon drinnen, d. h. wennst nur original MS-Komponenten verwendest (gilt nur für Office) dann kann man jede DB bedenkenlos weitergeben (in manchen Fällen mußt halt nur den Verweis erneuern)!