Thema Datum  Von Nutzer Rating
Antwort
03.05.2017 10:06:23 Yasin
NotSolved
Blau Programmiercodes lesen Access VBA
03.05.2017 13:01:53 Gast74279
*****
NotSolved
03.05.2017 13:14:57 Gast74279
NotSolved
03.05.2017 13:56:35 Gast23359
NotSolved
03.05.2017 13:57:52 Yasin Güngör
NotSolved

Ansicht des Beitrags:
Von:
Gast74279
Datum:
03.05.2017 13:01:53
Views:
793
Rating: Antwort:
  Ja
Thema:
Programmiercodes lesen Access VBA

Hier

k = Len(txta)

 

ReDim abc(1 To k) As String

 

For i = 1 To k

    abc(i) = Mid(txta, i, 1)

Next i

wird die Eingabe in einzelne Zeichen zerlegt und in ein Array (Datenfeld) zwischengespeichert.

 

Der Teil

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
For i = 1 To k
 
    For j = 1 To k - 1
 
            If abc(j + 1) < abc(j) Then
 
                h = abc(j)
 
                abc(j) = abc(j + 1)
 
                abc(j + 1) = h
 
            End If
 
    Next j
 
Next i

ist als BubbleSort bekannt, also ein Sortieralgorithmus (den ihr, wenn der hier dran kommt, sicher mal im Unterricht/Vorlesung hattet).

 

Hier

1
2
3
4
5
6
7
8
9
10
11
12
13
s = ""
 
  
 
For i = 1 To k
 
    s = s + abc(i)
 
Next i
 
  
 
txtb = s

wird anschließend der Inhalt des nun sortierte Arrays, zeichnweise aneinander hängend, in die Variable 's' geschrieben und dann in txtb ausgegeben.

-> Zum Beispiel wird aus der Eingabe 967 demnach 679.

 

Wie der Algo. die Zeichen im BubbleSort sortiert, wird durch

1
Option Compare Database

in der ersten Zeile festgelegt (diese werden also bei deutscher GebietsID nach deutschen Regeln sortiert, Groß-/Kleinschreibung wird nicht beachtet).

 

Ziemlich am Anfang siehst du ein

On Error GoTo sp

und am Ende ein

 

1
2
3
sp:
 
txtb = "abc"

 

Das bewirkt das wann immer irgendwo in dem Makro nach de On Error Goto - Anweisung ein Fehler auftritt, springt das Makro zu dem Punkt 'sp'. Dies ist z.b. der Fall, wenn die Eingabe leer bleibt. Dann wird nämlich versucht bei

1
2
3
k = Len(txta)
 
ReDim abc(1 To k) As String

ein Array mit der Dimension 1 nach 0 erzeugen und das ist nicht gültig (bei Punkt e würde also 'abc' in txtb stehen).

 

Hoffe das hat dir geholfen.

 

Gruß


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
03.05.2017 10:06:23 Yasin
NotSolved
Blau Programmiercodes lesen Access VBA
03.05.2017 13:01:53 Gast74279
*****
NotSolved
03.05.2017 13:14:57 Gast74279
NotSolved
03.05.2017 13:56:35 Gast23359
NotSolved
03.05.2017 13:57:52 Yasin Güngör
NotSolved