Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Franzose am Juli 11, 2011, 11:02:00

Titel: Modul mit Makro ausführen ?
Beitrag von: Franzose am Juli 11, 2011, 11:02:00
Guten Tag zusammen

Weis jetzt gar nicht genau ob es unter Programmierung passt ?
Es geht um Access Version 2000 Version 9.0
Ich brauch bitte eure Hilfe bei folgenden Problem, muss allerdings dazu sagen das ich mit Modulen eigentlich Null Erfahrung habe :
Ich habe ein Modul erstellt welches Word Dokumente öffnet, das war schon für mich schwierig hinzubekommen, aber wenn ich dieses Modul in der Sicht Module Ausführe funktioniert es tatsächlich J
Nun möchte ich aber dieses Modul über ein Makro ausführen, also eine Schaltfläche in einem Formular anklicken und dann soll ein Word Dokument geöffnet werden,
dachte erst das es mit einem Makro ,,Modul öffnen" passiert, geht aber nicht, es wird das Modul selbst geöffnet aber es passiert nichts weiter L

könnte mir jemand ganz genau schreiben wie ich vorzugehen habe um ein Modul über ein Makro auszuführen, möglichst eine Beschreibung für jemanden der nur ganz wenig Ahnung von Access und Modulen bzw. Makros hat.

Vielen Dank und Gruss aus Hamburg
Titel: Re: Modul mit Makro ausführen ?
Beitrag von: DF6GL am Juli 11, 2011, 11:15:06
Hallo,

Du hast lediglich das falsche Makro erwischt. Nimm

AusführenCode

um die Public-Funktion in einem Modul auszuführen.    

Hast Du jedoch eine Public Sub WordOeffnen ()  erstellt, dann ändere das in Public Function WordOeffnen () ab.


Besser jedoch wäre letztendlich, für die Schaltfläche eine Ereignisprozedur zu erstellen, in der die Public-Funktion (oder Sub) direkt aufgerufen wird:


Sub btnOpenWord_Click()
Wordoeffnen
End Sub
Titel: Re: Modul mit Makro ausführen ?
Beitrag von: Franzose am Juli 11, 2011, 12:19:15
Danke schon mal für die Antwort,
ja, das ist mir klar, die Makrofunktion "öffnen" geht da leider nicht,

wenn ich in der Entwurfsansicht Makro nun aber "Ausführen Code" wähle, dann muss ich ja unten einen Funktionsnamen eingeben, aber wo bekomme ich den Namen her, was muss ich dort eintragen ?



übrigens sieht mein Modul so aus welches auch funktioniert :

Option Compare Database

Sub btnDok1Öffnen()
FollowHyperlink "P:\WB\Koopmann\Berendsohn Logistik Datenbank\MS Word Anleitungen\Microsoft Access Startmenü erstellen.doc"

End Sub
Titel: Re: Modul mit Makro ausführen ?
Beitrag von: DF6GL am Juli 11, 2011, 13:36:40
Hallo,

mhmm,  bin jetzt leicht verwirrt...  ???



Die geposte Sub ist doch gar kein "Modul" (Prozedur) , die Word öffnet.  ("Modul" ist der Begriff für einen "Kontainer", der verschiedene Prozeduren (Subs oder Fuktionen) zusammenfasst).

Und mit einem Makro hat das zunächst auch nichts zu tun, bzw. Du brauchst für den Aufruf dieser Prozedur gar kein Makro. Die Prozedur wird aufgerufen, wenn Du auf die Schaltfläche "btnDok1Öffnen"  klickst.


Das sieht nach einer Ereignisprozedur für das Klick-Ereignis einer Schaltfläche aus.  Mit Followhyperlink wird die Doc-Datei mit dem Programm geöffnet, das für die Doc-Datei-Endung in Windows registriert ist. Dass das nun MS Word ist, ist zwar im allgemeinen so richtig, aber nicht zwingend...

Was ist denn jetzt Dein Problem?

Titel: Re: Modul mit Makro ausführen ?
Beitrag von: Franzose am Juli 11, 2011, 14:14:15
ich möchte in einen Access Formular eine Befehlsschaltfläche haben, wenn ich drauf klicke soll ein bestimmtes Wordokument geöffnet werden, mehr nicht  :-[

diese möglichkeit mit Hyperlink hat mir mal jemand gesagt das es so funktionieren könnte....

eigentlich ist es mir ja egal wie das Worddokument geöffnet wird, hauptsache es ist einfach für mich zu verstehen  ::)

ich hoffe es ist so verständlich was ich möchte  :-\
Titel: Re: Modul mit Makro ausführen ?
Beitrag von: DF6GL am Juli 11, 2011, 16:53:19
Hallo,

ja, ich versteh Dich (jetzt) schon, und das, was Du machen willst, hast Du ja schon realisiert...

Wenn beim Klick auf die Schaltfläche nichts passiert, dann kann es sein, dass in der Schaltflächen-Eigenschaft "Beim Klicken" nicht
[Ereignisprozedur]

drin steht, und zwar ganz genau so... Prüf das mal und ändere es ggfs.
Titel: Re: Modul mit Makro ausführen ?
Beitrag von: Franzose am Juli 12, 2011, 10:22:36
Ich beschreibe mal wo es bei mir noch hängt,

habe ein Formular erstellt,
bin in der Entwurfsansicht der Formulars
wähle aus der Toolbox ,,Befehlsschaltfläche" erstellen
klicke ins Formular, der Befehlsschaltflächen Assistent erscheint
drücke abbrechen damit der Assistent wieder verschwindet
habe nun eine Befehlsschaltfläche im Formular, aber noch ohne Funktion !
klicke die Befehlsschaltfläche mit rechts an
es erscheint ein Menü, dort wähle ich ,,Ereignis",

dann erscheint ein kleines Menü mit der Wahl :
Ausdrucks-Generator
Makro.Generator
Code-Genrator

Und hier weis ich nicht weiter was ich zu wählen habe und auch die nächsten Schritte die ich machen muss um ein Word Dokument zu öffnen,

klasse wäre es wenn mir das in den einzelnen Schritten erklärt wird was ich zu machen habe,
wie schon gesagt, mit Codes und Ereignissen kenne ich mich absolut nicht aus, keine Ahnung was ich da eingeben muss L, am einbesten wäre eine Schritt für Schritt Anleitung

Gruss aus HH
Titel: Re: Modul mit Makro ausführen ?
Beitrag von: DF6GL am Juli 12, 2011, 11:01:28
Hallo,

da gibt es nicht viel anzuleiten....


Wenn das "kleine Menü" auftaucht, dann wähle "Code", um eine Ereignisprozedur zu erstellen. Dabei wird
[Ereignisprozedur]

in die entspr. Ereignis-Eigenschaftenzeile geschrieben (was ich im letzten Posting auch schon erwähnt habe).  Eine solche Ereignisprozedur hast Du ja schon im VBA-Editor (im Formular-Klassenmodul)

Diese Ereignisprozedur öffnet mittels Followhyperlink die angebene Datei.

Wählst Du im "kleinen Menü" Makro aus, muß in Folge ein existierendes Makro gewählt werden, und es wird dessen Name (statt "[Ereignisprozedur]") in die Ereignis-Eigenschaftenzeile geschrieben, was bedeutet, dass beim Klick auf die Schaltfläche eben dieses Makro ausgeführt wird.


Wenn Du den Assistenten abbrichst, hat der auch keine Chance, eine Ereignisprozedur zu erstellen...und Du mußt das Ganze dann selber machen.

Ich denke, für die Lösung Deines Problems reicht es völlig aus, wie schon gesagt, in die Ereignis-Eigenschaftenzeile der Schaltfläche
[Ereignisprozedur]
zu schreiben.

Wenn danach nichts bei Schaltflächen-Klick passiert, dann stimmen vermutlich iregendwelche Namen nicht.

Klick dann auf die rechts der Ereignis-Eigenschaftenzeile stehenden 3 Pünktchen, wähle "Code-Generator" und schau im aufgehenden VBA-Editor nach, wo der Cursor (Schreibmarke) steht.  Wenn alles stimmt, dann steht sie in der Prozedur mit "FollowHyperlink...".


Wenn es nur ein Prozedurgerüst ist (Private Sub ..... /End Sub)  , dann kopiere die Followhyperlink-Zeile (oder schreib sie neu) in diese Prozedur.




Titel: Re: Modul mit Makro ausführen ?
Beitrag von: Franzose am Juli 12, 2011, 13:05:30
erstmal danke für deine geduld, mag schon gar nicht mehr fragen  :-X

habe nun folgendes getan :

im Formular auf die Schaltfläche rechts geklickt
Eigenschaften angeklickt
ins Feld gegangen "beim Klicken"

dort erscheinen die beiden Mini Schaltflächen, ein kleiner Pfeil und die drei Punkte.

wenn ich nun auf die drei kleinen Punkte klicke erscheint folgendes Bild, was muss ich dann tun  ???

    stDocName = "MENÜ schliessen Programmierung"
    DoCmd.RunMacro stDocName

Exit_Befehl2_Click:
    Exit Sub

Err_Befehl2_Click:
    MsgBox Err.Description
    Resume Exit_Befehl2_Click
   
End Sub
Private Sub Befehl3_Click()
On Error GoTo Err_Befehl3_Click

    Dim stDocName As String

    stDocName = "MODUL öffnen Word Dokument, Microsoft Access Startmenü erstellen"
    DoCmd.RunMacro stDocName

Exit_Befehl3_Click:
    Exit Sub

Err_Befehl3_Click:
    MsgBox Err.Description
    Resume Exit_Befehl3_Click
   
End Sub
Private Sub Befehl4_Click()
On Error GoTo Err_Befehl4_Click

    Dim oApp As Object

    Set oApp = CreateObject("Word.Application")
    oApp.Visible = True

Exit_Befehl4_Click:
    Exit Sub

Err_Befehl4_Click:
    MsgBox Err.Description
    Resume Exit_Befehl4_Click
   
End Sub

Private Sub Befehl5_Click()

End Sub

Private Sub Befehl6_Click()

End Sub


Titel: Re: Modul mit Makro ausführen ?
Beitrag von: DF6GL am Juli 12, 2011, 13:29:03
Hallo,

das sieht ja nun ganz anders (und ziemlich durcheinander)   aus...


Lad mal Deine DB hier hoch....
Titel: Re: Modul mit Makro ausführen ?
Beitrag von: Stapi am Juli 12, 2011, 13:32:32
Hallo Franzose

Wenn du in deinem Formular auf deine Befehlsschaltfläche mit der echten Masutaste klickst kommen wie du richtig erkannt hast deine Eigenschafen von den Feld. Nun steht "beim klicken" = Ereignisprozedur drin, dahinter drei kleine Punkte, auf den punkten geklickt wird dein Cursor in die entsprechnede VBA Prozedur geführt und blinkt bei "Privat sub ". Nun kannst du sehen welche Prozedur beim "klicken" ausführst.

Gruß stefan
Titel: Re: Modul mit Makro ausführen ?
Beitrag von: database am Juli 12, 2011, 13:40:02
Hallo,


Das Ganze sieht danach aus als hättest du da schon mehrfach was versucht...  ;)

Bennenne mal deine Schaltfläche ordentlich - z.B. cmdWordDateiOeffnen

Wenn du dann gemäß Anleitung von Franz (DF6GL) vorgehst also Rechtsklick auf die Schaltfläche, Eigenschaften, Reiter Ereignisse,
danach neben 'Beim Klicken' aus dem Dropdown '[Ereignisprozedur]' auswählst,
dann auf die Schaltfläche mit den 3 Punkten klickst, befindest du dich in der Ereignisprozedur, die beim Klicken der Schaltfläche ausgeführt wird.

Zwischen die Zeilen
Private Sub cmdWordDateiOeffnen()
und
End Sub

Schreibst du den FollowHyperlink-Befehl aus deinem Modul

Private Sub cmdWordDateiOeffnen()

   FollowHyperlink "P:\WB\Koopmann\Berendsohn Logistik Datenbank\MS Word Anleitungen\Microsoft Access Startmenü erstellen.doc"

End Sub


HTH

p.s. Ich glaube den anderen Code, der sich in diesem Formular befindet kannst du wegschmeißen zumindest die Clickereignisse ohne Anweisungen braucht kein Mensch
Titel: Re: Modul mit Makro ausführen ?
Beitrag von: Franzose am Juli 12, 2011, 14:24:01
habe das nun im feld "beim klicken" folgendes geschrieben : [Ereignisprozedur]Private Sub cmdWordDateiOeffnen() FollowHyperlink " P:\WB\Koopmann\Berendsohn Logistik Datenbank\MS Word Anleitungen\Microsoft Access Startmenü erstellen.doc"  End Sub

danach abgespeichert und die Schaltfläche angeklickt, dann kommt folgende Info : MS Access kann das Makro " [Ereignisprozedur]Private Sub cmdWordDateiOeffnen() FollowHyperlink " P:\WB\Koopmann\Berendsohn Logistik Datenbank\MS Word Anleitungen\Microsoft Access Startmenü erstellen.doc"  End Sub" nicht finden

dann noch folgender Text : Entweder existiert das Makro nicht, oder das Makro ist neu und wurde noch nicht gespeichert......
Titel: Re: Modul mit Makro ausführen ?
Beitrag von: DF6GL am Juli 12, 2011, 14:27:45
Hallo,

Du liest die Postings nicht....


In der Eigenschaft darf NUR

[Ereignisprozedur]

stehen!

Danch klickst Du auf die rechts stehenden Punkte und öffnest dadurch den VBA-Editor.

DORT kannst Du jetzt die Codezeile (Followhyperlink...)   eingeben.