| |
Visual-Basic Einsteigerarray - subscript out of range | | | Autor: crosstravel | Datum: 12.11.16 15:43 |
| Hallo zusammen,
mittels split trenne ich ein Adressfeld in Strasse und Hausnummer und
speichere das Resultat in einem Array.
Fehlt nun die Hausnummer und ich spreche das Array sarray(1) an, kommt die
Fehlermeldung "subscript out of range". Wie kann ich diese Fehlermeldung ab-
fangen?
Danke für Euer Feedback
Rainer | |
Re: array - subscript out of range | | | Autor: Franki | Datum: 13.11.16 03:45 |
| Hallo Rainer,
Du kannst die Dimension des erzeugten Arrays mit Ubound(DeinArray) ermitteln und dann nur bis dahin abfragen.
Allerdings ist die Trennung von Strasse und Hausnummer bei einer Adresse mittels Split keine gute Idee, denn das trennt nach Leerzeichen sofern du nichts anderes angibst. Und sowohl Strassennamen als auch Hausnummern können Leerzeichen enthalten.
Bei z.B.: (Freiherr vom Stein Strasse 1) bringt dir das split keine Hausnummer wenn du auf (1) im Array suchst. (da steht dann "vom" drin)
Und wenn als Hausnummer z.B. (1 B) eingetragen ist, dann liefert dir das Ubound auch nur das B als Ergebnis. Grundsätzlich ist es keine gute Idee Strasse und Hausnummer per Split trennen zu wollen, besser ist es in der Datenbasis dafür getrennte Felder zu verwenden.
Gruß
Frank | |
Re: array - subscript out of range | | | Autor: crosstravel | Datum: 13.11.16 07:38 |
| Hallo Frank,
danke für deine informationen. Mit UBOUND konnte ich mein Problem,
zumindest vordergründig, lösen. Danke. Das von Dir angeführte Problem
mit den Strassennamen bereitet mit mehr sorgen. Eine Anpassung der
Datenbasis zieht einen Rattenschwanz von Anpassungen (Datenbank, Forms,
Druckprogramme usw.) mit sich. Na, mal sehen, wie und wann ich das mache.
Einen schönen Sonntag
Rainer | |
Re: array - subscript out of range | | | Autor: Franki | Datum: 14.11.16 03:31 |
| Hallo Rainer,
so viel Aufwand ist das ja nun auch wieder nicht. Datenbank: Eine zusätzliche Spalte für die Hausnummer, Form ebenfalls ein zusätzliches Eingabefeld. Die Druckroutinen müssen nur die Hausnummer hinten anfügen.
Ich habe oft mit "unqualifizierten" Datenbeständen in dieser Hinsicht zu tun. Meist schreibe ich mir dafür ein kleines Hilfsprogramm, in deinem Fall könnte das so aussehen vom Prinzip her:
Zuerst mal analysieren wie viele Adressen nicht passen.
Alle Adressen der DB durchgehen und per Split aufteilen wie du es jetzt hast.
Private Sub Form_Load()
Dim Adresse As String
Dim Kontrolltext As String
Adresse = "Freiherr vom Stein Str. 1a"
' Oder auch mit 1 a anstatt 1a
Aufteilung = Split(Adresse)
For x = 0 To UBound(Aufteilung) - 1
Kontrolltext = Kontrolltext & Aufteilung(x) & " "
Next
Kontrolltext = Trim(Kontrolltext) & "/" & Aufteilung(UBound(Aufteilung))
Debug.Print Kontrolltext
End Sub Dann brauchst du nur zu kontrollieren, ob nach dem / eine plausible Hausnummer steht. Je nach Prozentsatz der Fehler kannst du das ganze automatisieren und musst nur wenige Datensätze per Hand nachbearbeiten. Teste das mal mit deinem Datenbestand.
Gruß
Frank | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevWizard für VB5/6
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|