Zum Inhalt springen

VBA Array mit mehr als 100 Feldern


charly2005

Empfohlene Beiträge

Hallo zusammen,

ich habe beim Auslesen und Schreiben des Inhaltes einer Textdatei in ein Array daß Problem, daß bis zum Feld 99 des Arrays alles klappt - beim Abfragen von Feldern größer/gleich 100 passiert nichts - es erscheint weder eine Fehlermeldung noch werden die Feldinhalte abgelegt:

Daß Problem liegt an dieser Zeile:

Select Case MyArray(61)

Sobald hier ein Wert >99 steht, funktioniert nichts mehr !

Dim MyArray() As String

Dim Temptabelle As Variant

Dim Tempstring As String

Dim Freie_Datei As Integer

Dim AnzahlZeichenInString, AnzahlZeichenInArray As Integer

Dim i, k, j As Integer

Dim sql As String

Dim Konservennummer_Var As String

Dim GGT_Var As Integer

Dim GOT_Var As Integer

Dim GPT_Var As Integer

Dim CHOL_Var As Integer

Dim TRIG_Var As Integer

Dim ALB_Var As Integer

Dim KREA_Var As Integer

Dim GLUC_Var As Integer

Freie_Datei = FreeFile

AnzahlZeichenInArray = 0

k = 0

Open "C:\MODULAR\MODULAR_05544.txt" For Input As #Freie_Datei

While Not EOF(Freie_Datei)

'Schreibt alles was in eine Zeile steht (Datei) in variable (Tempstring)

Input #Freie_Datei, Tempstring

'Speichert in Variant (Temptabelle) von variable (Tempstring) ohne Trennzeichen

Temptabelle = Split(Tempstring, "|")

'Zählt die Anzahl von Zeichen in Variant (Temptabelle)

AnzahlZeichenInString = UBound(Temptabelle)

'Endwert (die letzte Position im Array)

AnzahlZeichenInArray = k + AnzahlZeichenInString

'Position von Daten in Temptabelle (jeden Schleifengang fähngt von 0)

j = 0

ReDim Preserve MyArray(AnzahlZeichenInArray)

For i = k To AnzahlZeichenInArray

'Schreibt Element an die richtige Position im Array

MyArray(i) = Temptabelle(j)

j = j + 1

Next i

'Startwert (die erste Position im Array)

k = AnzahlZeichenInArray + 1

Wend

Close Freie_Datei

Konservennummer_Var = MyArray(30)

' Abfrage des ersten Ergebnisses

Select Case MyArray(61)

Case "^^^219/": GGT_Var = Val(MyArray(62))

sql = "UPDATE dbo.SpendenTestergeb SET GGT = " & GGT_Var & " "

sql = sql & " WHERE (Konservennummer = " & Konservennummer_Var & ");"

DoCmd.RunSQL sql

Case "^^^684/": GPT_Var = Val(MyArray(62))

sql = "UPDATE dbo.SpendenTestergeb SET GPT = " & GPT_Var & " "

sql = sql & " WHERE (Konservennummer = " & Konservennummer_Var & ");"

DoCmd.RunSQL sql

Case "^^^686/": GOT_Var = Val(MyArray(62))

sql = "UPDATE dbo.SpendenTestergeb SET GOT = " & GOT_Var & " "

sql = sql & " WHERE (Konservennummer = " & Konservennummer_Var & ");"

DoCmd.RunSQL sql

Case "^^^413/": ALB_Var = Val(MyArray(62))

sql = "UPDATE dbo.SpendenTestergeb SET Albumin = " & ALB_Var & " "

sql = sql & " WHERE (Konservennummer = " & Konservennummer_Var & ");"

DoCmd.RunSQL sql

Case "^^^433/": CHOL_Var = Val(MyArray(62))

sql = "UPDATE dbo.SpendenTestergeb SET Cholesterin = " & CHOL_Var & " "

sql = sql & " WHERE (Konservennummer = " & Konservennummer_Var & ");"

DoCmd.RunSQL sql

Case "^^^773/": KREA_Var = Val(MyArray(62))

sql = "UPDATE dbo.SpendenTestergeb SET Kreatinin = " & KREA_Var & " "

sql = sql & " WHERE (Konservennummer = " & Konservennummer_Var & ");"

DoCmd.RunSQL sql

Case "^^^668/": GLUC_Var = Val(MyArray(62))

sql = "UPDATE dbo.SpendenTestergeb SET Gesamteiweiß = " & GLUC_Var & " "

sql = sql & " WHERE (Konservennummer = " & Konservennummer_Var & ");"

DoCmd.RunSQL sql

Case "^^^781/": TRIG_Var = Val(MyArray(62))

sql = "UPDATE dbo.SpendenTestergeb SET Triglyceride = " & TRIG_Var & " "

sql = sql & " WHERE (Konservennummer = " & Konservennummer_Var & ");"

DoCmd.RunSQL sql

Besten Dank im Vorfeld für Eure Unterstützung !

Link zu diesem Kommentar
Auf anderen Seiten teilen

Genau den Inhalt, den er haben sollte (in diesem Fall die Zahl 25.6) - ich lasse mir parallel zum Tabellenupdate den Inhalt auch in einer MsgBox anzeigen - daher weiß ich es. Vielleicht nochmal kurz zum Verständnis: Die entsprechenden case-Fälle tragen bestimmte Werte in eine SQL-Tabelle ein - solange daß Array-element unter 100 liegt, werden sie auch korrekt eingetragen - ....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...