vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
array - 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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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