$?=§(/§"%(§$("/§$...
Hallo,
solltest Du rausnehmen, wenn Du Fehler suchst
weiters: Du sprichst von einem Array, Du hast aber 4 davon:
id_eintrag()
id_kind()
eintrag()
datum()
... und Du fragst nur eines davon ab ("eintrag(x)").
Wenn Du mehrere immer gleiche Datensätze (jeder mit mehreren Feldern) in ein Array füllen willst, dann wäre ein 2-dimensionales Array gut, wobei die erste Dimension die "Datensatznummer" angibt, und der 2. Dimension stehen dann die Werte.
Zweckmäßigerweise sollten Arrays in ihrer Größe immer definiert sein, bei einem 2-dimensionalen Array also etwa so:
dieses Array ist aber nicht wirklich sinnvoll, es kann genau einen Wert speichern (entspricht also einer normalen Variablen, die auch nur einen Wert speichern kann). Angenommen aus Deiner Tabelle wird aber nur ein Wert (für sagen wir 10 Datensätze ausgelesen, dann ginge das mit folgender Dimensionierung:
über die Zuweisung: myArray(2)=xyz kannst Du dann den Wert xyz an der 3. Position des Arrays speichern etc. Wenn Du aber z.B. Nachname und Vorname von 4 Personen in einem Array speichern willst, dann ist es praktisch eine 2. Dimension zu haben:
Das bedeutet, dass im Array beim Wert 0, 1, 2 und 3 in der ersten Dimension jeweils 3 Werte in der 2. Dimension gespeichert werden können = 12 Werte:
Code: Alles auswählen
Dimension 1: Dimension 2=0 Dimension 2=1 Dimension 2=2
0 myArray(0,0) = "HANS" myArray(0,1) = "MEIER" myArray(0,2) = "01.04.2012"
1 myArray(1,0) = "PETER" myArray(1,1) = "MOSER" myArray(1,2) = "05.04.2012"
2 myArray(2,0) = "JOE" myArray(2,1) = "GRUBER" myArray(2,2) = "09.11.2012"
3 myArray(3,0) = "LILLY" myArray(3,1) = "SCHUSTER" myArray(3,2) = "05.08.2012"
Damit Dein Code funktioniert, musst Du also das Array richtig dimensionieren, und dann schrittweise befüllen. Sollte das Array "unterwegs" zu klein werden, kannst Du es jederzeit mit dem Befehl "REDIM PRESERVE" erweitern - schau' Dir dazu einfach die LO-Hilfe an.
Dann noch was zu Deiner Variable myCounter:
Dein Resultset "oErgSet" hat die Eigenschaft ".Row" - das ist die Zeilennummer des Resultsets - die kannst Du als Referenz für die erste Dimension verwenden, wobei zu beachten ist, dass standardmäßig ein Array mit 0 beginnt, ein Resultset aber mit 1 - zur besseren Orientierung kann man ja in myArray(0,x) die Feldnamen schreiben...
Den Datensatz Nummer 3 aus dem obigen Beispiel würde man dann etwa so ins Array schreiben:
Code: Alles auswählen
myArray(oErgSet.Row,0) = oErgSet.getstring(oErgSet.findColumn("Vorname")) ' das waere dann "JOE"
myArray(oErgSet.Row,1) = oErgSet.getstring(oErgSet.findColumn("Nachname")) ' das waere dann "GRUBER"
myArray(oErgSet.Row,2) = oErgSet.getstring(oErgSet.findColumn("Datum")) ' das waere dann "09.11.2012"
Und zum Debugging würde ich Dir Folgendes empfehlen:
unter "' Schleife zu Debuggingzwecken:"
fügst Du Folgendes ein:
wenn die Print-Prompt kommt, dann nicht gleich auf ok klicken, sondern zum Fenster mit dem Basic-Code wechseln. Dort setzt Du den Cursor irgendwo in den Namen Deines Arrays und drückst F7:
Dann wir ganz unten im Beobachterfenster Deine Variable angezeigt, und Du kannst Dir exakt anzeigen lassen was da drinsteht.