Verschillende VBA vraagjes over opsplitsen/converteren

Status
Niet open voor verdere reacties.

Wim1961

Gebruiker
Lid geworden
23 jun 2007
Berichten
29
Ik ben met een projectje in mijn maag gespiltst waar ik wat hulp bij nodig heb. Ik ben namelijk niet zo'n Acces expert. Ik heb hier een aantal vraagjes over maar zal bij het begin beginnnen anders is het overzicht zoek.

Vraag 1: Er wordt data ingelezen in een tekstvak en deze moet aan drie delen opgespitst worden. De data die wordt ingelezen ziet er ongeveer zo uit:
9006759;A720029;0002500 (ordernummer, itemnummer,hoeveelheid).

Deze moet nu aan drieën opgedeeld worden, ik heb dit op onderstaande manier opgelost maar dat lijkt mij niet de juiste want als er één van de getallen langer of korter is klopt het niet meer.

OrderNummer = Mid(IngelezenData 1, 7)
ItemNummer = "Mid(IngelezenData, 9, 7)
Hoeveelheid= "Mid(IngelezenData, 16,7)

Mijn vraag is nu welke code ik moet gebruiken om het op te delen aan de hand van de scheidingstekens zodat ik ook goed blijf zitten als de lengte van de ingelezen data eens mocht afwijken.

Vraag 2: Ik heb een stukje data dat ik aan de voorkant wil uitvullen met een aantal underscores. Bijvoorbeeld de data A720029 (lengte van het nummer is variabel) wil ik omzetten naar _____A720029

Ik heb dit geprobeerd met $Format op onderstaande manier maar dat werkt niet, lijkt erop dat $Format alleen werkt bij getallen die je uitvult met voorloopnullen. Ik heb nu dit:

ItemNummerUitgevuld = Format$(ItemNummer, "____________")

Hoe zou dit wel gerealiseerd kunnen worden?.


Deze twee vraagjes hou ik het even bij, ik heb nog meer maar dan wordt het onoverzichtelijk vrees ik. Ik hoop dat ik het duidelijk heb uitgelegd.
Alle hulp is welkom.

Wim
 
Om het eerste probleem op te lossen kun je de SPLIT functie gebruiken. Je definieert dan een matrix variabele, die je laat vullen op basis van je scheidingsteken.

Code:
Dim tmp As Variant
Dim Tekst As String

Tekst = "9006759;A720029;0002500"
tmp = Split(Tekst, ";")
Me.OrderNummer = tmp(0)
Me.ItemNummer = tmp(1)
Me.Hoeveelheid = tmp(2)

Je tweede vraag kun je zo oplossen:
Code:
Me.ItemNummerUitgevuld = Right("____________" & ItemNummer, 12)
 
Hallo Michel,

bedankt voor je reactie. Ik ga er morgen of begin volgende week mee aan de slag en laat
de uitkomst hier nog even weten.

grt, wim
 
Het is gelukt hoor, alles werkt perfect.
Bedankt voor de hulp.

grt, Wim
 
Mag je de vraag nog op Opgelost zetten...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan