collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 65
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14038
  • stats Beiträge insgesamt: 67221
  • stats Themen insgesamt: 9067
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Zugriff via VBA auf eigene Subs oder Funktionen in anderen Programmen  (Gelesen 690 mal)

Offline datekk

  • Access-Meister
  • ***
  • Beiträge: 709
Hi,

ich möchte gern von Outlook aus via VBA eigene Subs in meiner Access Datenbank ausführen. Ist dies möglich?

Beispiel:

in Modul in Access:
Public Function Rechnen (a as long, b as long) as Long
         Rechnen = a + b
End Function

So stelle ich mir das dann in Outlook VBA vor:

Sub RechnenPerAccess()

      Dim acc As Access.Application
      Set acc = GetObject(, "Access.Application")

      Debug.Print acc.Rechnen(10,20)

End Sub

Ist dies irgendwie möglich? Wenn ja, wäre es darüber hinaus auch möglich, die in Access aktuell im Speicher befindlichen Public Variablen abzurufen?

Danke schon mal für Eure Antworten.
 

Offline markus888

  • Access-Profi
  • **
  • Beiträge: 206
Dafür gibt es in Access die Run Methode.

LG Markus
10 Jahre Access
 

Offline PhilS

  • Administrator
  • Access-Profi
  • *****
  • Beiträge: 357
    • Tipps zu Access, VBA, SQL und Co.
ich möchte gern von Outlook aus via VBA eigene Subs in meiner Access Datenbank ausführen. Ist dies möglich?
[...]
Ist dies irgendwie möglich? Wenn ja, wäre es darüber hinaus auch möglich, die in Access aktuell im Speicher befindlichen Public Variablen abzurufen?
Für Sub-Prozeduren, wie du oben schreibst, ist die von Markus angeführte Run-Methode gut geeignet.

In deinem Beispiel hast du aber eine eigene Function gezeigt. Deren Rückgabewert bekommst du über Run meines Wissens nicht geliefert. Diesen könntest du mit der Eval-Funktion ermitteln. - Eval hat aber den Nachteil, dass der komplette Ausdruck, inkl. Parameter als String übergeben wird.

Auf Variablen kannst du grundsätzlich nicht zugreifen.

Neues Access 2019 Feature angekündigt: Modern Charts
 

Offline markus888

  • Access-Profi
  • **
  • Beiträge: 206
In deinem Beispiel hast du aber eine eigene Function gezeigt. Deren Rückgabewert bekommst du über Run meines Wissens nicht geliefert.

Funktionen gehen genauso.
Da würde ein Blick in die Hilfe oder ein einfacher Test weiterhelfen.  :)
10 Jahre Access
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1294
Prozeduren können auch in ihren Argumenten Werte zurückgeben, wenn sie als ByRef (das ist der Standard in VBA) deklariert sind. Das Ergebnis musst Du dann natürlich abholen.'In Access

Public Sub Addiere(ByVal Arg1 As Double, ByVal Arg2 As Double, Result As Double)
   Result = Arg1 + Arg2
End Sub
Und dann irgendo in den Weiten von Outlook ...   Dim Summe As Double

   DeineAccessInstanz.Run("Addiere", 10, 20, Summe)
   MsgBox Summe
Grüße von der (⌒▽⌒)
 

Offline PhilS

  • Administrator
  • Access-Profi
  • *****
  • Beiträge: 357
    • Tipps zu Access, VBA, SQL und Co.
Funktionen gehen genauso.
Da würde ein Blick in die Hilfe oder ein einfacher Test weiterhelfen.  :)
Der Blick in die Hilfe hat mich zu der Aussage gebracht. Dort wird nämlich zum Rückgabewert von Funktionen rein gar nichts gesagt.

Aber du hast recht. Der Rückgabewert einer Function wird direkt von Application.Run an den aufrufenden Code durchgereicht.
Danke! Wieder was dazugelernt!
Neues Access 2019 Feature angekündigt: Modern Charts
 

Offline datekk

  • Access-Meister
  • ***
  • Beiträge: 709
Klasse. Danke Euch.  :)