Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Anders (software)

ACcess200- alfabetische selektie

Anoniem
Annie
6 antwoorden
  • Access 2000 - Query - Ontwerpweergave

    Is het mogelijk en zo ja wat is de syntax om een element (6 posities) af te vragen of ie alfabetisch is ?
    Liefst een makkelijke oplossing, zoiets als = alfabetic
  • Je bedoeld dat alleen a-z voor mag komen in het invoerveld?

    Ik ben niet zo bekend met access maar je kan dit volgens mij gewoon in je query toevoegen (als allemaal losse [i:5d4f22bbf0]like[/i:5d4f22bbf0] of [i:5d4f22bbf0]instr()[/i:5d4f22bbf0] clauses voor de verschillende getallen) of zelf een functie schrijven en die gebruiken voor de controle.

    Als je onderstaande functie toevoegt aan access (Alt-F11):
    [code:1:5d4f22bbf0]
    Function IsAlfabetic(ByVal sInvoer)
    Dim iNumber, bResult
    bResult = True
    For iNumber = 0 To 9
    bResult = bResult And InStr(sInvoer, CStr(iNumber)) = 0
    If bResult = False Then Exit For
    Next
    IsAlfabetic = bResult
    End Function
    [/code:1:5d4f22bbf0]
    Kan je deze bijv zo gebruiken:
    [code:1:5d4f22bbf0]
    SELECT * FROM tabel WHERE IsAlfabetic(kolom)=true
    [/code:1:5d4f22bbf0]
  • Annie bedankt, ga het vandaag of morgen proberen :P
  • /disclaimer:
    Ik heb bovenstaande om 2 uur 's nachts bedacht, dus ik garandeer niet dat het de meest logische oplossing is (understatement).

    btw. ik hoor van een collega dat je ook regular expressions kan gebruiken binnen je functie (deze moet je dan even toevoegen als "extra verwijzing" en je hebt daarvoor wel de juiste libs nodig). Als je bekend bent met regexp-en dan kan dat de code eenvoudiger en overzichtelijker maken (je matched dan op patronen, bijv [a-z]). Maar echt veel meerwaarde zie ik niet in dit geval.
  • oeps :oops:

    Code is niet helemaal 100% zie ik (controleert alleen op cijfers dus bijv. leestekens zijn ook toegestaan)
    Deze is beter:
    [code:1:5f0691e6a8]
    Function IsAlfabetic(ByVal sInvoer As String) As Boolean
    Dim iPos As Integer, bResult As Boolean
    bResult = True
    If sInvoer > "" Then
    sInvoer = LCase(sInvoer)
    For iPos = 1 To Len(sInvoer)
    bResult = Asc(Mid(sInvoer, iPos, 1)) >= 97 _
    And Asc(Mid(sInvoer, iPos, 1)) <= 122
    If bResult = False Then Exit For
    Next
    End If
    IsAlfabetic = bResult
    End Function
    [/code:1:5f0691e6a8]
    btw. heb ook maar een regular expression poging ondernomen. Just for fun overigens, ik zou deze zelf niet gebruiken (regexp's kunnen nogal traag uitpakken):
    [code:1:5f0691e6a8]
    Function IsAlfabetic(ByVal sInvoer As String) As Boolean
    Dim oRegExp As New RegExp
    oRegExp.Pattern = "^[a-z]*$"
    oRegExp.Global = True
    oRegExp.IgnoreCase = True
    IsAlfabetic = oRegExp.Test(sInvoer)
    Set oRegExp = Nothing
    End Function
    [/code:1:5f0691e6a8]
  • Annie, mijn collega gaat dit binnenkort uitproberen.
    Aardig van je om zo ontzettend te helpen,

    Moet je om 2 uur snachts niet slapen ??? :lol: :P

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.