Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: robertpp am 02.10.03 - 12:14:31
-
Ich bekomme das leider nicht hin:
Ich mach das so:
Dim arrayAccess() As String
If iz =0 Then
Redim arrayZugriff( iz )
arrayZugriff( iz ) = zentry.ColumnValues(1)
iz = iz + 1
Else
Redim Preserve arrayZugriff( iz )
arrayZugriff( iz ) = zentry.ColumnValues(1)
iz = iz + 1
End If
das passt auch alles nur es besteht der Fall das das array garnicht gefüllt wir!
Wie kann ich nachher realisieren das er Exit Sub macht:
Ich habe es so schon versucht:
doc.arrayja = arrayZugriff
If Isempty(doc.arrayja(0)) Then Exit Sub
das geht nicht:
If Isempty(arrayZugriff) Then Exit Sub
das auch nicht
kannn mir jemand helfen!
-
... auf die schnelle (aus der klamottenkiste):
setzt dir einen schalter, wenn der array gefüllt wird.
-
Hi,
hast Du das schon mal mit IsNull probiert ?
If IsNull(arrayZugriff(0)) Then Exit Sub
-
Soweit ich das sehe, wird ja immer ein Array erzeugt, so daß also array (0) immer existiert (also nie "empty" ist). NULL wird auch nicht zugewiesen, hilft also auch nicht weiter.
So sollte eine Abfrage auf array (0) = "" möglich sein.
HTH,
Bernhard
-
@koehlerbv
das array wird erst dann erzeigt wenn ein eintrag vorhanden ist vorher existiert es nicht!!
@driri
das geht auch nicht mit If IsNull(arrayZugriff(0)) Then Exit Sub
Ich sehe schon mir wird nicht erspart bleiben es über einen zweite variable zu machen!!
Na vielleicht fällt sonst noch jemand etwas ein!!!
-
Ich hab die Lösung ;D ;D
If Isempty(iz) Then
Exit Sub
End If
so geht es!!!!
-
Trotz der vielen, vielen Ausrufezeichen: Die Sache war aber jetzt etwas wirr.
Kannst Du uns (klaussal, Driri und mir sowie der anderen atnotes-Gemeinde, die den Thread ja ggf. mit gelesen hat) ein paar nähere Infos geben ?
Bernhard
-
Die Lösung:
Dim arrayAccess() As String
Dim iz as Integer
Jetzt ist das array leer und iz ist auch leer:
Wenn jetzt die erste if Formel eintritt und iz gleich leer ist dann macht er das rotgeschriebenen das ist eh einleuchtend.
If zentry.ColumnValues(2) = "115" Then
If iz =0 Then
Redim arrayZugriff( iz )
arrayZugriff( iz ) = zentry.ColumnValues(1)
iz = iz + 1
Else
Redim Preserve arrayZugriff( iz )
arrayZugriff( iz ) = zentry.ColumnValues(1)
iz = iz + 1
End If
End If
Sollte jetzt aber nie zentry.ColumnValues(2) = "115" sein dann hat das array auch keine werte und iz ist immer noch empty und genau das hab ich gebraucht!!
If Isempty(iz) Then
Exit Sub
End If
-
Mit dem "Code drumherum" wird es etwas klarer. Aber Du hast nicht recht:
Dim arrayAccess() As String
Dim iz as Integer
Nach der Definition von iz hat diese Variable den Wert 0, ist also keinesfalls "IsEmpty".
Der Sinn der Definition von arrayAccess erschliesst sich mir nicht ganz.
An Hand folgenden Beispielcodes kannst Du das Ganze ja mal nachvollziehen:
Sub Click(Source As Button)
Dim arrayAccess () As String
Dim iz As Integer
If Isempty (arrayAccess) Then
Msgbox "ArrayAccess ist Empty"
End If
If Isnull (arrayAccess) Then
Msgbox "ArrayAccess ist NULL"
End If
If Isscalar (arrayAccess) Then
Msgbox "ArrayAccess ist skalar"
End If
If iz = 0 Then
Msgbox "iz = 0"
Else
Msgbox "iz <> 0"
End If
If Isempty (iz) Then
Msgbox "iz is empty "
Else
Msgbox "iz is NOT empty "
End If
End Sub
Vulgo:
- iz ist nicht leer, sondern hat den Integerwert 0.
- was Du mit "array" meinst, weiss ich nicht, da Du mit arrayAccess und arrayZugriff dealst. Hast Du Option Declare verwendet ?
Bernhard