Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: tragger am April 14, 2013, 22:40:00

Titel: Laufzeitfehler 9 im Zusammenhang mit Array
Beitrag von: tragger am April 14, 2013, 22:40:00
Hallo Leute,
ich bin heute mal wieder am verzweifeln. ich bekomme immer einen Laufzeitfehler. Ich schiene mal wieder den Wlad vor lauter Bäumen nicht zu finden. Laufzeitfehler 9 : Indes außerhalb des gültigen Bereichs.

Ich weiß nicht warum, denn an anderer Stelle kein Problem beim befüllen des Arrays mit einer for-Schleife...

Hier der Code:


Dim db As Database
   Set db = CurrentDb
   Dim rs As DAO.Recordset
   Dim rs2 As DAO.Recordset
   Dim SQL$
   Dim SQL2$
   Dim Customer As Long
   Dim merker9 As Long
   Dim number As Double
   Dim I As Long, x As Long
[...]
SQL = " SELECT * FROM qryHaus"
               SQL = SQL + " WHERE MitgliedsNr =" & Customer & ""
               Set rs = db.OpenRecordset(SQL)
               Do Until rs.EOF
                   rs.Edit
   ' hier alte Werte!
' hier fehlt z.Zt. noch Code
                   I = 0
                   rs!Austritt = Date
                   rs!Mitgliedsstatus = "Ausgetreten"
                   rs.Update
                   ' Änderunngshistory füllen
                   ReDim Preserve myArrayName(I)
                   ReDim Preserve myArrayExit(I)
                   myArrayName(I) = "Austritt"
                   myArrayExit(I) = Date
                   I = I + 1
                   myArrayName(I) = Mitgliedsstatus
                   myArrayExit(I) = "Ausgetreten"
                   Customer = Me.MitgliedsNr
                   Referenzfield = "MitgliedsNr"
                   Referenznumber = Me.MitgliedsNr
                   Call AuditTrail(I, 1, "tabMitglieder", 10)
                   rs.MoveNext
               Loop
               rs.Close
[...]


Nur zur Info, es handelt sich hier um einen Codeauszug, der den Fehler verursacht..., außerdem verursacht AuditTrail sonst auch keine Probleme...

Ich danke schon vorab für eure Unterstützung...
Titel: Re: Laufzeitfehler 9 im Zusammenhang mit Array
Beitrag von: daolix am April 14, 2013, 22:48:08
wenn du
I = I + 1
musst du um in das/die Array(s) zu schreiben, diese auch neu Redimensionieren sprich
ReDim Preserve myArrayName(I)
ReDim Preserve myArrayExit(I)
myArrayName(I) = Mitgliedsstatus
myArrayExit(I) = "Ausgetreten"
Titel: Re: Laufzeitfehler 9 im Zusammenhang mit Array
Beitrag von: tragger am April 14, 2013, 23:10:13
mir bleibt der inhalt von I = 0 aber erhalten, oder??
Titel: Re: Laufzeitfehler 9 im Zusammenhang mit Array
Beitrag von: daolix am April 14, 2013, 23:30:33
ja.

dim EinArray() as Eindatentyp

es gibt 2 Arten ein Array zu redim'men
redim EinArray(neZahl)
das Array wird neu gesetz, vorhandene Daten werden gelöscht

redim preserve EinArray(neZahl)
das Array wird redimensoniert, vorhandene Daten bleiben erhalten