Rouven: Access+VBA: Dialogfenster programmieren

Hello,

ich hänge gerade an der Programmierung eines Dialog-Fensters fest. Hintergrund ist folgendes:
Ein Modul soll die Steuerung durch einen Assistenten übernehmen, der aus mehreren nacheinander folgenden Fenstern besteht. Jedes Fenster erfragt ein oder mehrere Einstellungen vom Benutzer.
Am Ende der Sequenz sollen dem Modul alle getroffenen Einstellungen zur Verfügung stehen.

Mein erster Ansatz war die Definition eines eigenen Typs, in dem sämtliche dieser Einstellungen abgelegt werden. Das würde ja soweit auch alles funktionieren, wenn nur die Interaktion zwischen Modul und Formular besser funktionieren würde - zur Verdeutlichung:
Ich kann über die OpenArgs beim Aufruf zwar ein Argument an das Formular übergeben, aber dieses wird nach meinem Verständnis weder ByRef übergeben, noch mag es das Formular, wenn das ein user-defined type ist. Somit fällt die Möglichkeit jedem Formular das Speicherobjekt mitzugeben und verändern zu lassen flach.
Anders herum fällt mir auch keine befriedigende Lösung ein, die Einstellungen zurückzufüttern - ClosingArgs gibts nicht, wozu auch, das Formular ist ja nach dem Schließen weg.
Die quick-and-dirty Variante eines globalen Variant für solche Zwecke fällt auch flach, weil VBA auf User-Defined-Types kein Late-Binding unterstützt und somit folgendes nicht geht:
Global storage As Variant
storage = varOfUserDefinedType

Was ist also die saubere Lösung für den Datenaustausch? Soll ich meinem Steuerungsmodul eine öffentliche Variable vom passenden UDT verpassen?

MfG
Rouven

--
-------------------
Computer programming is tremendous fun. Like music, it is a skill that derives from an unknown blend of innate talent and constant practice. Like drawing, it can be shaped to a variety of ends: commercial, artistic, and pure entertainment. Programmers have a well-deserved reputation for working long hours but are rarely credited with being driven by creative fevers. Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination, but because their imagination reveals worlds that others cannot see. -- Larry OBrien and Bruce Eckel in Thinking in C#
  1. Global storage As Variant
    storage = varOfUserDefinedType

    Du hast Probleme.   ;)
    Erste Idee: ein globales variant-array.

    1. Hello,

      Erste Idee: ein globales variant-array.

      ja, aber schön find ich das nun auch wieder nicht, zumal VBA meines Wissens keine assoziativen Arrays unterstützt, d.h. die Kontrolle ist gleich null.
      Bin jetzt tatsächlich auf einem Hauch von Objektorientierung und habe dem Steuerungsmodul "Feedbackmethoden" eingebaut, die der Dialog aufruft und darüber seine Ergebnisse zurückfüttert. Aber schön find ich das nicht, weil irgendwie falsch herum.

      MfG
      Rouven

      --
      -------------------
      There's no such thing as a free lunch  --  Milton Friedman
      1. Erste Idee: ein globales variant-array.
        ja, aber schön find ich das nun auch wieder nicht, zumal VBA meines Wissens keine assoziativen Arrays unterstützt, d.h. die Kontrolle ist gleich null.
        Bin jetzt tatsächlich auf einem Hauch von Objektorientierung und habe dem Steuerungsmodul "Feedbackmethoden" eingebaut, die der Dialog aufruft und darüber seine Ergebnisse zurückfüttert. Aber schön find ich das nicht, weil irgendwie falsch herum.

        Nun, das Programm hat eben einen Zustand (sitzungs- bzw. nutzerabhängig), diesen könntest Du natürlich auch schön persistieren und in Objekte auslagern. Wüsste nicht was daran unschön sein soll.