PDA

Vollständige Version anzeigen : Module Ausführen


Shadoe
22.01.2008, 10:00
Hallo, ich habe zwei modulen erstellt im Access.
Ich möchte eine modul ausführen das so ist:

Public Sub Open_Excel()
Dim Variable As Boolean
Dim oXcl As New Excel.Application, ws As Excel.Worksheet

With oXcl
' ab hier ist reines Excel
.Workbooks.Open Filename:="j:\michael\access\macros.xls"
.Visible = True
.run "modul1.MONTAG_DURCHLAUF"
' hier kannst du deine Excelbefehle unterbringen
.ActiveWorkbook.Save
.Quit
End With
End Sub


ich habe das mir ein macro verknupft, aber wann ich der macro starten, ich bekomme der VB fenster mit der code statt meine Excel arbeitsblatt.

Wie kann ich der Code ausführen? stimmt das als ein macro?
gibt es ein bessere weg?

bitte um hilfe..

Danke
Tim



P.S. ich bin Amerikaner in Deutschland, sorry für der schlechte grammatik;)

Sascha Trowitzsch
22.01.2008, 10:09
Mit Makros kann man keine Sub-Prozeduren ausführen.
Ändere auf :
Public Function Open_Excel()

Im Makro:
"Ausführen Befehl" > "= Open_Excel()"
(Sorry, don't know how this german statement "Ausführen Befehl" is specified in your presumably english Access)

Ciao, Sascha

Shadoe
22.01.2008, 10:15
Mit Makros kann man keine Sub-Prozeduren ausführen.
Ändere auf :
Public Function Open_Excel()

Im Makro:
"Ausführen Befehl" > "= Open_Excel()"
(Sorry, don't know how this german statement "Ausführen Befehl" is specified in your presumably english Access)

Ciao, Sascha

Danke,
Ich hab der Deutsche Version von Access. in der Macro hab ich folgendes:
Ausführen Befehl" > "= Open_Excel()"

und der sagt:
Der von Ihnen eingegebene Text ist kein Element der Liste.

Was mach ich falsch?
ich habe ein bild angehängt
Gruß
Tim

ebs17
22.01.2008, 11:22
Ich glaube, Sascha hat sich leicht vertan.

Verwende im Makro statt "AusführenBefehl" besser "AusführenCode". Dann kannst Du auch im Eigenschaftenfenster zum Befehl (unten) die entsprechende Funktion auswählen.

Insgesamt ist aber die Verwendung von Makros eher ungünstig. (Der Link zu DBWiki funktioniert gerade nicht.)

Besser wäre der Aufruf über VBA, z.B. über Button (cmd_Execute)
Private Sub cmd_Execute_Click()
Open_Excel
End Sub

Shadoe
22.01.2008, 11:39
Ich glaube, Sascha hat sich leicht vertan.

Verwende im Makro statt "AusführenBefehl" besser "AusführenCode". Dann kannst Du auch im Eigenschaftenfenster zum Befehl (unten) die entsprechende Funktion auswählen.

Insgesamt ist aber die Verwendung von Makros eher ungünstig. (Der Link zu DBWiki funktioniert gerade nicht.)

Besser wäre der Aufruf über VBA, z.B. über Button (cmd_Execute)
Private Sub cmd_Execute_Click()
Open_Excel
End Sub

Hallo, ich bin ein neulig zum Access. Wie läuft das genau mit der Button?

Gruß
Tim

und wann ich ausführenCode in der macro benutze, kommt fehler meldung:
"Der von Ihnen eingegebene Ausdruck enhält den Namen einer Funktion die, datenbank nicht finden kann."

gruß
tim

ebs17
22.01.2008, 11:55
und wann ich ausführenCode in der macro benutze, kommt fehler meldung:
"Der von Ihnen eingegebene Ausdruck enhält den Namen einer Funktion die, datenbank nicht finden kann."

Befindet sich die Funktion in einem allgemeinen Modul (mit einem abweichenden Namen), also nicht in einem Formularmodul?

ich bin ein neulig zum Access. Wie läuft das genau mit der Button?

Im Formularentwurf kann man mittels der Toolbox Steuerelemente (Controls) in das Formular einfügen. Diese Steuerelemente wie auch das Formular selber haben Ereignisse (Events), die man mit Prozeduren verknüpfen kann.
Beispiel: Klicken einer Befehlsschaltfläche (Button).

ebs17
22.01.2008, 12:05
Ergänzung:
Anlegen von Ereignisprozeduren (http://www.ardiman.de/datenbanken/grundlagen/vba.html#SEC1)

und bezüglich Makros:
Gründe gegen Makros (http://www.ardiman.de/datenbanken/grundlagen/makros.html#SEC2)

Shadoe
22.01.2008, 12:27
Danke, ich würde es gleich versuchen


Gruß
Tim

Anne Berg
22.01.2008, 12:41
Ich glaube, Sascha hat sich leicht vertan.Das glaubst du doch nicht wirklich, oder? :eek:

(Makros können tatsächlich nur Funktionen (Functions) aufrufen. :p)

Shadoe
22.01.2008, 12:59
Das glaubst du doch nicht wirklich, oder? :eek:

(Makros können tatsächlich nur Funktionen (Functions) aufrufen. :p)

Hallo, es geht immer noch nicht bei mir mit der macro.

Ich habe noch ein bild hinzufügt.

Es muss doch ein einfache weg geben oder?

Gruß
Tim

ebs17
22.01.2008, 13:08
Hallo Tim,

das Modul und die Funktion darin dürfen nicht den gleichen Namen haben. Siehe auch Beitrag #6.

@Anne: hast Du auch den Folgesatz in #4 gelesen?
Aber: Wer schreibt schon Makros und hat Praxis darin?

Anne Berg
22.01.2008, 13:17
@Eberhard: da weiß ich jetzt nicht, worauf du dich beziehst. :confused:

Im vorausgegangenen Anhang von Shadoe kann man erkennen, dass er durchaus "AusführenCode" ausgewählt hatte.

ebs17
22.01.2008, 13:22
@Anne: Meine Korrektur bezog sich nicht auf Funktion, sondern auf "AusführenBefehl" im Makro (zu diesem Zeitpunkt).

Sascha Trowitzsch
22.01.2008, 16:08
Ja, doch, Sascha kann sich schon mal vertun. ;)
Da er die Anweisungen immer nur aus der Combo auswählt, kommen solche Erinnerungslücken mit fortgeschrittenem Alter durchaus vor.
BTW: Möglicherweise geht es mit
AusführenCode | = Open_Excel.Open_Excel()

Ciao, Sascha

uwek
22.01.2008, 16:37
[OT]
@Sascha
...kommen solche Erinnerungslücken mit fortgeschrittenem Alter durchaus vor
Mach mir bitte keine Angst :grins:

ebs17
22.01.2008, 16:55
[OT] Statt göttlich genial zu sein ist auch schon eine Menge.