Hi zusammen,
ich komme mal wieder nicht weiter. Ich habe ein Formular mit Kombifelder und Textfeldern usw. Dort habe ich in den Eigenschaften "Ereignis -> Bei Fokuserhalt" folgendes eingebeben:
=meine_funktion()
Das funktioniert auch alles wunderbar bis ich eine accde erstelle UND diese in einer reinen Runtime Umgebung läuft. Dann kommt die angehängte Fehlermeldung.
Dabei ist es völlig egal ob das Ereignis "Bei Fokuserhalt" oder sonst etwas ist und es ist auch egal, was in der Funktion steht. Sie könnte auch leer sein.
Kann es sein, dass ich einen Verweis auf eine DLL setzen muss? Und wenn ja, auf welche?
Ich habe gegoogelt und alles mögliche. Ich verstehe es nicht.
Danke.
LGM
Hallo,
Steht die Funktion in einem Standard-Modul?
Ist in ALLEN Modulköpfen Option Explicit vorhanden?
Ist die DB damit ohne Fehler kompilierbar?
Poste den kompletten Code der Funktion erkläre, WO sie steht..
Zitat von: DF6GL am März 04, 2017, 10:41:16
Steht die Funktion in einem Standard-Modul?
Ist in ALLEN Modulköpfen Option Explicit vorhanden?
Ist die DB damit ohne Fehler kompilierbar?
Poste den kompletten Code der Funktion erkläre, WO sie steht..
Hi Franz,
Sie steht in den Klassenobjekten. Ja, Option explicit ist vorhanden. Ja, sie ist kompilierbar und alles läuft auch rund in der Office Vollversion. Auch als accde. Aber nicht auf einem Rechner, auf dem nur die Runtime installiert ist. Dort tritt der Fehler auf. Der Code der Funktion ist dabei egal. Sogar
private (oder public) function huhu()
end function
läuft nicht.
Auf dem Runtime Rechner laufen X andere Formulare einwandfrei. Nur eben dies nicht.
LGM
Hallo,
ZitatSie steht in den Klassenobjekten
Schreib die Funktion(en) in eine Standardmodul
z. B. im Modul1:
Option Compare Database
Option Explicit
Public Function huhu()
Msgbox "huhu"
End Function
Zitat von: DF6GL am März 04, 2017, 11:01:48
Schreib die Funktion(en) in eine Standardmodul
Danke Franz, aber das ändert nichts.
LGM
Hallo,
lad mal eine Beispiel-Db hier hoch, an der das nachzuvollziehen ist.
Zitat von: DF6GL am März 04, 2017, 11:15:29
lad mal eine Beispiel-Db hier hoch, an der das nachzuvollziehen ist.
Hi Franz,
danke für Deine Hilfe. Habe Beispiel erstellt. Aber da funktioniert es leider.
In dem Problemprojekt funktionieren Ereignisse als Sub auch, nur nicht, wenn ich sie im Ereignis als "=meinefunktion()" aufrufe. Und das, wie gesagt, auch nur in der Runtime nicht. Ich werde hier noch irre.
LGM
Hallo,
ZitatAber da funktioniert es leider.
Also auch mit der Rumtime? <edit> ääh, ich meine RunTime, 8) ;D </edit>
dann bleibt nur noch das Hochladen/Korrektur der Problem-DB, weil dort nur das Problem auftritt ...
Zitatfunktionieren Ereignisse als Sub auch
lässt mich stutzen: Es funktionieren da nur "Function"s , keine "Sub"s...
Zitat von: DF6GL am März 04, 2017, 12:16:46
Zitatfunktionieren Ereignisse als Sub auch
lässt mich stutzen: Es funktionieren da nur "Function"s , keine "Sub"s...
Subs funktionieren. Wenn Sie in den Eigenschaften ganz normal mittels der Auswahl "..." eingebunden sind. Funktionen, die Du in den Eigenschaften als "=meinefunction()" einbindest, geben den bekloppten Fehler aus. Aber nur in der Runtime. In der Vollversion gehts. Auch, wenn Du die Vollversion mit "/RUNTIME" aufrufst, geht alles.
In einem anderen Formular (auf dem Runtime Rechner) habe ich auch "=meinefunktion()" als Ereignis stehen. Da geht es auch.
Vielleicht ist auch von Interesse, dass beim ersten Aufruf, wenn ich das problematische Feld aufrufe nach MSOUTL.OLB gesucht (und gefunden) wird. Das passiert bei dem Formular, in dem "=meineFunktion()" funktioniert, nicht.
Oh Mann. Ich weiß, wie irre sich das anhört.
LGM
Das Problem dürften dann abweichende Verweise auf dem Rechner mit der Runbtime sein. Stelle Deine Outlook-Automatisierung auf Late-Binding um.
Zitat von: Lachtaube am März 04, 2017, 13:05:22
Das Problem dürften dann abweichende Verweise auf dem Rechner mit der Runbtime sein.
Nö. Er findet sie ja letztlich. Hab es nur für die Fehlereingrenzung erwähnt, dass er just in dem Moment danach sucht, wenn das Ereignis ausgelöst wird. Danke aber.
Verweise können in einer ACCDE oder MDE nicht aktualisert werden - auch wenn Du das Gegenteil behauptest. ;)
Zitat von: Lachtaube am März 04, 2017, 14:29:10
Verweise können in einer ACCDE oder MDE nicht aktualisert werden - auch wenn Du das Gegenteil behauptest. ;)
Hab ich nicht behauptet. Ich habe lediglich gesagt, dass sich kurz ein Infofenster öffnet indem Access darauf hinweist, dass er MSOUTL.OLB sucht (und dann findet). Danke abermals.
LGM
Ich habe das Problem jetzt so gelöst, dass ich nicht mehr "=meinefunktion()" in die diversen Ereignisse schreibe, sondern für jedes Ereignis ein Sub aufrufen lassen. Auch, wenn in jeder Sub das Gleiche drin steht, was nervig und unübersichtlich ist. Weiß mir nicht anders zu helfen. Danke für jeden Beitrag.
LGM