none
Access stürzt bei Declaration eines FileSystem Objektes ab.

    Frage

  • Hallo,

    wenn ich hinter das Click Ereignis eines Buttons eines Access Formulares diese Code Zeile schreibe

    Dim fso as New FileSystemObject

    stürzt Access ab. Die Prozessorleistung springt hoch und nach einer Minute verliere ich die Geduld und beende das Elend.

    Mit dieser Variante:

    Dim fso As Object
    
    Set fso = CreateObject("Scripting.FileSystemObject")

    funktioniert es. Keine Probleme. Der Verweis auf die Scripting Runtime ist gesetzt. Ich verwende Access 2003 auf einer XP Maschine.

    Das Problem hatte ich noch nie, sonst funktioniert die erste Variante problemlos. Interesaanterweise übrigens auch, wenn ich den Code in einem Modul einfüge und die Prozedur von dem Click Ereignis aus aufrufe. Hat jemand eine Idee woran das liegen kann???

    Dankeschön

    Donnerstag, 17. März 2011 14:34

Antworten

Alle Antworten

  • Hallo,

    In VB6 / VBA sollte man besser nie Dim x as New verwenden, siehe Why not to use the "Dim myObj as New Object" construct.

    Hast Du es mal mit folgendem versucht?

    Dim fso as FileSystemObject
    Set fso = New FileSystemObject


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    • Als Antwort markiert OdiWanKenobi Freitag, 18. März 2011 08:04
    Donnerstag, 17. März 2011 15:16
  • Danke für den Link, das ist sehr interessant.

    Ich habe gerade deine Variante probiert und auch hier: Nachdem ich die erste Zeile (Dim fso as FileSystemObject
    ) getippt habe und die Enter Taste drücke für den Zeilenumbruch "rennt sich Access tod".

    Das passiert also nicht erst wenn der Code gestartet wird, sondern schon bei der Eingabe. Auch mit dem Code hinter einem neuen Button auf der gleichen Form stürzt die Anwendung ab, mit einem Button auf einer neuen Form ist es kein Problem, ebensowenig wenn ich den Code in einem Modul einfüge.

    Donnerstag, 17. März 2011 17:02
  • Hallo Odi

    OdiWanKenobi wrote:

    Danke für den Link, das ist sehr interessant.

    Ich habe gerade deine Variante probiert und auch hier: Nachdem ich die
    erste Zeile (Dim fso as FileSystemObject ) getippt habe und die Enter
    Taste drücke für den Zeilenumbruch "rennt sich Access tod".

    Ich vermute, das FSO ist bei Dir nicht sauber installiert, so dass es im Early Binding die Typelibrary nicht richtig laden kann. Wie man das beheben kann, weiss ich nicht. Ich empfehle sowieso immer auf die Referenzen zu verzichten und statt dessen Late Binding zu verwenden. Ist für die Entwicklung ein bisschen mühsam, dafür für den Betrieb der Anwendung wesentlich zuverlässiger, weil da nicht gleich zu Beginn alle Libaries geladen werden müssen und die Anwendung nicht läuft, wenn eine Libary nicht gebunden werden kann.

    Gruss
    Henry

    Donnerstag, 7. April 2011 11:33