Array-Problem - Variant in StringArray

02/03/2008 - 13:07 von Siegfried_Dreher | Report spam
Ich habe folgendes Problem,
ich lese 6 Spalten in ein StringArray und speichere dieses StringArray
dann in ein VariantArray. Da funktioniert auch ganz gut.

Nun möchte ich aber dieses VariantArray wieder auslesen. Hierbei mag
mich mein VB allerdings nicht.
Ich habe folgende Anweisung


Dim intMaxLines As Integer
Dim strArrayVerben() As Variant

Public Sub setValueUebergabe(strArrayVerbs, intSumVerbs)
strArrayVerben = strArrayVerbs
intMaxLines = intSumVerbs

Dim arrVerb(7) As String (das StringArray sollte 8 Felder haben)

arrVerb = strArrayVerben(1) <-- Hier passiert der Fehler
"kein Zuweisung an
Datenfeld möglich"

usfVerben.txtZeitform = strArrayVerben(0)

usfVerben.txtFrage = arrVerb(1)



Kann mir jemand sagen wie ich das VariantArray meine StringArrays
entlocke?

Gruß!
Siegfried
 

Lesen sie die antworten

#1 W. Wolf
05/03/2008 - 13:44 | Warnen spam
Hallo Siegfried
schrieb
[...]
ich lese 6 Spalten in ein StringArray und speichere dieses StringArray
dann in ein VariantArray. Da funktioniert auch ganz gut.

Nun möchte ich aber dieses VariantArray wieder auslesen. Hierbei mag
mich mein VB allerdings nicht.
Ich habe folgende Anweisung





bißchen schwer zu verstehen was Du da vorhast.


Dim intMaxLines As Integer
Dim strArrayVerben() As Variant

Public Sub setValueUebergabe(strArrayVerbs, intSumVerbs)



schon die Deklaration der Funktion ist undeutig.
So wie Du das machst ist strArrayVerbs bereits
Variant. Ebenso intSumVerbs. Der Aufruf der Funktion
mag ja noch funktionieren, aber spàtestens hier:

strArrayVerben = strArrayVerbs



sollte bereits ein Fehler enstehen.

intMaxLines = intSumVerbs



Nun wird der globalen intMaxLines der übergebene
aus dem Variant intSumVerbs umgewandelte Integer
zugewiesen???

Alles weitere verstehe ich noch weniger.

Wie dem auch sei, hier ein Code der zumindest
funktioniert, auch wenn ich seinen Sinn nicht
verstehe:

Option Explicit

Dim intMaxLines As Integer
Dim strArrayVerben As Variant

Public Sub setValueUebergabe(strArrayVerbs As Variant, intSumVerbs As Integer)
strArrayVerben = strArrayVerbs
intMaxLines = intSumVerbs

Dim arrVerb(7) As String '(das StringArray sollte 8 Felder haben)
Dim i As Integer, j as integer
If IsArray(strArrayVerbs) Then
For i = LBound(strArrayVerben) To UBound(strArrayVerben)
If j <= 7 Then
arrVerb(j) = strArrayVerben(i)
Else
Exit For
End If
j=j+1
Next i
End If
End Sub

Private Sub Form_Click()
Dim strArrayVerbs(7) As String
Dim i As Integer
For i = 0 To 7
strArrayVerbs(i) = "abc"
Next i
Call setValueUebergabe(strArrayVerbs, i)
End Sub

Gruß
W. Wolf

Ähnliche fragen