Sven: Array Problem

Hallo zusammen

Ich habe ein kleines Problem mit den Arrays.

Ich habe ein Datenbankfeld (StandortID) in welchem diverse Werte gespeichert sind (1, 4, 5, 7)

Es können maximal 7 Zahlen gespeichert werden. Nun möchte ich diese Variable aufteilen und in einen Array verteilen. Das Problem ist jedoch dass ich nicht weiss, wieviel Zahlen gespeichert sind.
<%
StandortID = (rs_Referenz.Fields.Item("StandortID").Value)
varBereich = SPLIT(StandortID, ",")
Bereich1 = varBereich(0)
Bereich2 = varBereich(1)
Bereich3 = varBereich(2)
Bereich4 = varBereich(3)
Bereich5 = varBereich(4)
Bereich6 = varBereich(5)
Bereich7 = varBereich(6)
%>
mit diesem Code erscheint die Fehlermeldung:

-> Index außerhalb des gültigen Bereichs: '[number: 3]'
Da nur 3 Zahlen gespeichert sind.

Danke für Eure Hilfe.
Sven

  1. Hi Svan,

    das Problem ist, dass Du auf Array-Elemente zugreifst, die nicht existieren. Ich würde mal versuchen, entweder über ReDim die Länge des Arrays varBereich anzupassen (nach dem Zugriff auf rs_Referenz) oder mittels UBound und if-Abfrage nur diejenigen varBereich (*) auszulesen, die es wirklich gibt.

    Beide Vorschläge sind nur quick-and-dirty und nicht getestet.

    Ciao
    Hans-Peter

  2. Hallo,

    sql = "select distinct StandortID from tabelle order by StandortID"

    set rs = db.execute(sql)

    dim orte
    orte = ""

    do while not rs.eof
    orte = orte & rs(StandortID) & ","
    rs.movenext
    loop
    orte = left(orte,len(orte) - 1) 'wegen dem letzten komma
    orte1 = split(orte)

    dim zaehler
    zaehler = 0
    for each eintrag in orte1
    zaehler = zaheler + 1
    next
    response.write zaehler & "unterschiedlichen StandortID's<br>"

    Odium

    1. Hallo,

      eine kleine verbesserung, hatte " vergessen...
      mit ubound(orte1) wie von Hans-Peter vorgeschlagen...
      hast du auch die max. einträge...aber mit dem code kannst du eben auch andre vorgänge gleich einbauen...

      sql = "select distinct StandortID from tabelle order by StandortID"

      set rs = db.execute(sql)

      dim orte
      orte = ""

      do while not rs.eof
      orte = orte & rs("StandortID") & ","
      rs.movenext
      loop
      orte = left(orte,len(orte) - 1) 'wegen dem letzten komma
      orte1 = split(orte)

      dim zaehler
      zaehler = 0
      for each eintrag in orte1
      zaehler = zaheler + 1
      next
      response.write zaehler & "unterschiedlichen StandortID's<br>"

      Odium

  3. Hallo zusammen

    Tach!

    Es können maximal 7 Zahlen gespeichert werden. Nun möchte ich diese Variable aufteilen und in einen Array verteilen. Das Problem ist jedoch dass ich nicht weiss, wieviel Zahlen gespeichert sind.

    Mit der Funktion UBound(arrayname[,dimension])läßt sich feststellen,wie groß das Array ist. Vielleicht hilft das schon weiter?

    mfg,
    Pen