Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: bungev am März 23, 2017, 11:27:37

Titel: Array per ENUM Werte ansprechen
Beitrag von: bungev am März 23, 2017, 11:27:37
Hallo zusammen,

ich möchte ein Array in einer Sub/Function mit Werten füllen und später irgendwo auf dieses Array per ENUM-Werte zurückgrerifen. Kann mir da jemand helfen?

Hier mal mein Bsp-Code

Public Array(100,15) as string

Enum Array_ENUM
    Wertetext1 = 0
    Wertetext2= 1
    Wertetext3= 2
    usw.
End Enum

sub test()

for z=0 to 100
    Array(z,0) = "Wert1"
    Array(z,1) = "Wert2"
    Array(z,1) = "Wert3"
    usw.
next z

end sub

Aufruf in einer anderen Sub/Funktion

Sub Aufruf

msgbox Array(0,Wertetext2)

end sub

Bei msgbox Array(0, soll nun die ENUM-Liste erscheinen, die mir die gewünschten Textwerte anzeigt.

Dieses Beispiel soll nur kurz als Bsp. dienen und somit nur meine Problemstellung verdeutlichen. Mir ist schon klar, dass der Code so keinen Sinn macht.

Wäre schön, wenn mir jemand helfen könnte.

Vielen Dank

Volker
Titel: Re: Array per ENUM Werte ansprechen
Beitrag von: Josef P. am März 23, 2017, 13:15:26
Hallo!

Vorab: ist dein Anwendungfall so geheim, dass du das Array als Array bezeichnen musst? ;) (Ist nämlich eine schlechte Namenswahl, da es eine eine Array-Funktion gibt.)

Ich nehme an, du möchtest automatisch Intellisense erhalten. Das kannst du über eine Hilfsfunktion erreichen.

public function EinSinnvollerName(byval Index as long, byval WerteTextIndex as DeinEnum) as String
   EinSinnvollerName = DeinArray(Index, WerteTextIndex)
end Function


Da du ein Enum zum Nachschlagen verwendet, schließe ich daraus, dass die 2. Dimension des Arrays immer gleich groß sein wird.

Wie würde dir folgende Verwendung gefallen:
irgendetwas = DeineListe(123).WertText1

mfg
Josef
Titel: Re: Array per ENUM Werte ansprechen
Beitrag von: bungev am März 23, 2017, 14:09:42
Hallo Josef,

natürlich ist mein Code keine Geheimsache und Array ist natürlich auch nicht so dolle, aber das habe ich ja auch dazugeschrieben.

Ich glaube, dass Du mein Problem gelöst hast. Werde dass jetzt mal ausgiebig testen.

Vielen Dank noch einmal für die schnelle Lösung.

Volker
Titel: Re: Array per ENUM Werte ansprechen
Beitrag von: Beaker s.a. am März 23, 2017, 15:37:13
Hallo Josef,
Zitatdu möchtest automatisch Intellisense erhalten. Das kannst du über eine Hilfsfunktion erreichen.
Das verstehe ich nicht. IntelliSense bekomme ich doch wenn ich den Namen
der Enum gefolgt von einem "." eintippe.
Oder meinst du das hiermit

irgendetwas = DeineListe(123).WertText1

und "DeineListe(123)" ist die Enum?

gruss ekkehard
Titel: Re: Array per ENUM Werte ansprechen
Beitrag von: Josef P. am März 23, 2017, 15:45:31
@ekkehard:
Wenn man einen Funktionsparamter mit dem Enum deklariert, kommt IntelliSense sofort, ohne den Enum-Namen zu tippen.

zu:
irgendetwas = DeineListe(123).WertText1
Je nach Anwendungsfall, den ich mangels Beschreibung des Verwendungszwecks nicht kenne, könnte vielleicht ein Konstrukt aus Array und Type oder Klasse auch passen.

Prinzip:
Public Type Adresse
   Strasse As String
   PLZ As String
   Ort As String
   Land As String
End Type

' Verwendung:
private sub MachWas()
   dim Adressen(3) as Adresse
   ...
   irgendetwas = Adressen(1).Ort
   ...


mfg
Josef
Titel: Re: Array per ENUM Werte ansprechen
Beitrag von: Beaker s.a. am März 23, 2017, 20:17:10
Hallo Josef,
ZitatFunktionsparamter mit dem Enum deklariert
Grrr, das as DeinEnumhatte ich überlesen.
gruss ekkehard