veld adres splitsen in straat en nummer/bus

Status
Niet open voor verdere reacties.

djemmers

Gebruiker
Lid geworden
7 jul 2006
Berichten
129
Hallo

Ik heb een db met oa een tabel met persoonsgegevens.
Waaronder natuurlijk het adres.
nu is dat verkeerd opgelsteld
naam voornaam adres postcode gemeente,....
het probleem zit hem bij adres.
Dat is een tekstvak met daarin straat nummer en bus gewoon als tekst...
Ik kan dus geen querries die checken of dat wel volledi is.

Ik wil dus de inhoud van het veld adres splitsen in twee velden:
adres en nummer

voorbeeld:
adres: koning leopoldlaan 34/5
nummer:
wordt
adres: koning leopoldlaan
nummer: 34/5

het is een database met over de 10 000 adressen dus dat zou automatisch moeten gebeuren.

Kan iemand me zeggen hoe dat moet?
Ben geen newbie bij acces of sql maar dit gaat mijn petje te boven
 
Laatst bewerkt:
Ga op zoek naar mijn GetPart en GetParts functies die geven gedeeltes van strings terug. Zo te zien wil je het laatste veld terug krijgen. Je kan die functies gebruiken in queries en zodoende je tabellen aanpassen.

HTH:D
 
ok heb dit gevonden:

Code:
Public Function GetPart(strString As String, strSep As String, intPart As Integer) As String
'Guus2005 - 2006
'Recursive function which returns part "intPart" of "strString" with "strSep" as a separator
   
   Dim intFound As Integer
   Dim intNext  As Integer
   
   intFound = InStr(1, strString, strSep)
   If intFound > 0 Then
      If intPart = 1 Then
         GetPart = Mid$(strString, 1, intFound - 1)
      Else 'intPart > 1
         GetPart = GetPart(Mid$(strString, intFound + 1), strSep, intPart - 1) 'recursive
      End If
   Else 'intFound = 0, no occurence of seperator so return complete string
      GetPart = strString
   End If
   
End Function

en voer de volgende statement uit om het eerste gedeelte, het tweede gedeelte of het derde gedeelte te pakken:

strEerste = GetPart(mid$(strInput,3), "-", 1)
strTweede = GetPart(mid$(strInput,3), "-", 2)
strDerde = GetPart(mid$(strInput,3), "-", 3)

Maar ik weet niet hoe dat in acces te gebruiken, blijkbaar ben ik toch een redelijke newbie. Dat wordt zoeken
 
Heb het gedeelte visual basic gevonden in acces,
daarin een module aangemaakt en daarin getPart geplakt.

Hoe gebruik ik getPart nu in het acces gedeelte ?
bv een eenvoudige query zou iets in deze trend moeten worden?

select getpart(tblMedewerker.adres," ",1) from tblMedewerker

maar dat lukt me niet, hoe roep ik getpart aan in mijn querries ?
 
Even Quick and Dirty

Code:
'dimensioneren van een array
dim arr() as string
dim intNummerPos as integer
dim strNummer as string
dim strStraatnaam as string
dim intTeller as integer

'Vullen van de array met het adres.
arr = split("koning leopoldlaan 34/5"," ")
'Op de laatste positie staat nu het nummer.
intnummerpos = ubound(arr,1)
strNummer = arr(intnummerPos)

strStraatnaam = ""

for intTeller = LBound(arr,1) to intNummerPos-1
   if len(strStraatNaam)=0 then
      strStraatnaam = arr(intTeller)
   else
      strStraatnaam = strStraatnaam & " " & arr(intTeller)
   endif
next intTeller

Je kan ook bovenstaande code gebruiken om direct je doel te gebruiken. GetPart is erg algemeen en ik denk ook niet dat het heel erg handig is om nu toe te passen.

Ik hoop dat je eruit komt.

Enjoy!
 
Heb het gedeelte visual basic gevonden in acces,
daarin een module aangemaakt en daarin getPart geplakt.

Hoe gebruik ik getPart nu in het acces gedeelte ?
bv een eenvoudige query zou iets in deze trend moeten worden?

select getpart(tblMedewerker.adres," ",1) from tblMedewerker

maar dat lukt me niet, hoe roep ik getpart aan in mijn querries ?

Je mist een klein stukje code:
Code:
select getpart(tblMedewerker.adres," ",1) [B]as StraatNaam[/B] from tblMedewerker
Deze geeft je echter alleen "Koning" terug en niet "Koning Leopold".

Kijk even naar mijn andere post met een beter voorbeeld.

Enjoy!
 
ok,

het wordt me alsmaar duidelijker

select GetPart(tblMedewerker.adres," ",1) as StraatNaam from tblMedewerker
geeft echter de error:
de expressie bevat een ongedefinieerde functie GetPart.

wat mij niet verwonderd want ik heb geen idee of de link tussen visual basic en de rest van acces juist is

ik weet dat getpart te algemeen is maar wil het daarmee werkend krijgen en dan de functie schrijven die ik nodig heb (gelijkaardig met jou voorbeeld maar moet nog meer gevallen aankunnen)

kan iemand me zeggen hoe bv GetPart werkend te krijgen?
ik open het visual basic gedeelte en dan ?
Ik heb nog nooit vb functies in acces gebruikt...
 
ondertussen gevonden dat er een beveiliging opstond.
die uitzetten en plots werkte alles mooi :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan