Vraag mbt Functies in Visual Basic 6

Status
Niet open voor verdere reacties.

VBBirdy

Nieuwe gebruiker
Lid geworden
23 jan 2018
Berichten
2
Hallo Allen,

Allereerst: ik post deze vraag in Visual Basic NET omdat ik geen gedeelte Visual Basic 5 / 6 kon vinden. Excuses daarvoor

Ik programmeer al langere tijd in VB6 met veel plezier. Het is alleen maar hobby maar in de loop der tijd heb ik toch heel wat kennis me eigen gemaakt. Nu heb ik me verdiept in het gebruik van Functies maar daar loop ik tegen een probleem aan. Ik wil in mijn programma een (Nederlandse) naam uit elkaar trekken en omdraaien dus bv Jan Jansen wordt Jansen, Jan.
Ik krijg dit voor elkaar (zie hieronder) maar wil dit graag in een functie verwerken zodat ik deze functie vaker kan gebruiken en aanroepen (ook in andere programma's)
Misschien is dit eenvoudiger / makkelijker te realiseren in een recentere versie van VB maar ik wil graag bij de programmeertaal Visual Basic 6 blijven.
Mijn huidige opzet van de functie is:

Public Function NameConvert(strFullName As String) As String
Dim FullName() As String
FullName() = Split(strFullName, " ")
Aantal = UBound(FullName)
If Aantal > 3 Then ' meer dan 4 woorden (komt niet voor?)
MsgBox "Meer dan 4 gedeeltes?"
End If

If Aantal = 3 Then ' 4 stukken ' voorbeeld Jan van den Ham Controleren 2e deel op hoofdletter
NaamGoed = FullName(3) & " " & FullName(1) & " " & FullName(2) & ", " & FullName(0)
End If

If Aantal = 2 Then ' 3 stukken
' 1 voornaam en 2 achternamen (Edwin Olde Riekerink) of 2 voornamen en 1 achternaam (Klaas Jan Huntelaar)
' of Voornaam, voorvoegsel en Achternaam Controleren of 2e gedeelte met een hoofdletter is
If Left(FullName(1), 1) Like "[A-Z]" = True Then
NaamGoed = FullName(2) & ", " & FullName(0) & " " & FullName(1)
Else
NaamGoed = FullName(2) & " " & FullName(1) & ", " & FullName(0)
End If
End If

If Aantal = 1 Then ' 2 stukken Ordinair Voornaam en Naam
NaamGoed = FullName(1) & ", " & FullName(0)
End If

If Aantal = 0 Then ' alleen Achternaam bv Romario
NaamGoed = FullName(0)
End If
End Function

Ik roep deze functie nu aan met msgbox NameConvert("Jan Jansen") maar het resultaat blijft leeg.
Als ik nu in mijn programma een Public variabele NaamGoed declareer dan heb ik wel resultaat.
Volgens de voorbeelden op internet is dit niet nodig / wordt niet gedaan.
Wie kan mij helpen met het oplossen van dit probleem. Ik heb al veel functies op internet bekeken waarbij de syntax soortgelijk is en dat het wel werkt zonder de public variabele, maar ik weet niet wat ik fout doe.

Bij voorbaat dank voor het meedenken.
Bert
 
Je vergeet aan het einde dit:
NameConvert = NaamGoed
 
Hartelijk dank

Dank edmoor.
Wat kan het soms simpel zijn en wat is dat internet toch mooi.

Ik kan weer verder:D

Nogmaals dank.

Bert
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan