Toon posts:

Diacritische tekens in Access

Pagina: 1
Acties:
  • 124 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Voor mijn afstudeerproject had ik een webpagina gemaakt met daarop een toetsenbord met alleen de benodigde letters, cijfers en leestekens. Heel leuk, heel veilig (vooral zonder een 'hard' toetsenbord)

Nu zit ik met het volgende probleem. Dat virtuele toetsenbord gebruik ik voor een zoekmachine. In de onderliggende access-database zitten ook woorden met diacritische tekens ( é è ö ñ ) etc. Die kan ik wel toevoegen in het virtuele toetsenbord, maar het ziet er anders minder mooi uit ;)

Nu vroeg ik me af of het mogelijk is om een query ook te laten zoeken op tekens die lijken op die van de zoekterm. Ik doel hier erop dat wanneer je 'belgie' intikt, hij ook op zoek gaat naar 'belgie' en 'belgië'. Is dat mogelijk in Access. Heb ondertussen al gegoogled en gelezen, maar kan er niet iets zinnigs over vinden.

ow diacritisch is diacritic in het engels ;)

Alvast bedankt voor de moeite :)

  • Boss
  • Registratie: September 1999
  • Laatst online: 19:37

Boss

+1 Overgewaardeerd

Als het om 1 of 2 tekens per woord gaat, zou je via een functie op beide woorden kunnen laten zoeken. Bijvoorbeeld:
code:
1
... WHERE Land = 'België'

zou je met een functie kunnen laten vervangen door 'Land = 'België' OR Land = 'Belgie'
en dan op beide zoeken.
Die functie moet dan iedere 'vreemde' letter vervangen door zijn 'normale' letter en er een OR aan toevoegen om de SQL weer correct te maken.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • sweetdude
  • Registratie: April 2002
  • Laatst online: 05-04 15:11
ik gebruik deze procedure om in een archief systeem de eerste letter van een straat te zoeken

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
Private Sub adresfilters_AfterUpdate()
    If (adresfilters = 1) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""[AÀÁÂÃÄ]*"""
    End If
    If (adresfilters = 2) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""B*"""
    End If
    If (adresfilters = 3) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""[CÇ]*"""
    End If
    If (adresfilters = 4) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""D*"""
    End If
    If (adresfilters = 5) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""[EÈÉÊË]*"""
    End If
    If (adresfilters = 6) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""F*"""
    End If
    If (adresfilters = 7) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""G*"""
    End If
    If (adresfilters = 8) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""H*"""
    End If
    If (adresfilters = 9) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""[IÌÍÎÏ]*"""
    End If
    If (adresfilters = 10) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""J*"""
    End If
    If (adresfilters = 11) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""K*"""
    End If
    If (adresfilters = 12) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""L*"""
    End If
    If (adresfilters = 13) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""M*"""
    End If
    If (adresfilters = 14) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""[NÑ]*"""
    End If
    If (adresfilters = 15) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""[OÒÓÔÕÖ]*"""
    End If
    If (adresfilters = 16) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""P*"""
    End If
    If (adresfilters = 17) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""Q*"""
    End If
    If (adresfilters = 18) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""R*"""
    End If
    If (adresfilters = 19) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""[SŜ]*"""
    End If
    If (adresfilters = 20) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""T*"""
    End If
    If (adresfilters = 21) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""[UÙÚÛÜ]*"""
    End If
    If (adresfilters = 22) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""V*"""
    End If
    If (adresfilters = 23) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""W*"""
    End If
    If (adresfilters = 24) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""X*"""
    End If
    If (adresfilters = 25) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""[YÝÿ]*"""
    End If
    If (adresfilters = 26) Then
        DoCmd.ApplyFilter "", "[Adres] Like ""[ZÆØÅ]*"""
    End If
    If (adresfilters = 27) Then
        DoCmd.ApplyFilter "", "[Plaatsnaam] = [Forms]![frm gesorteerd op adres]![PlaatsSelectie]"
        DoCmd.GoToControl "Adres"
        DoCmd.RunCommand acCmdSortAscending
    End If
    If (adresfilters = 30) Then
        DoCmd.ShowAllRecords
        [Forms]![frm gesorteerd op adres]![PlaatsSelectie] = ""
        DoCmd.GoToControl "Adres"
        DoCmd.RunCommand acCmdSortAscending
    End If
    If (CurrentRecord > 0) Then
        DoCmd.GoToControl "Adres"
        DoCmd.RunCommand acCmdSortAscending
        Exit Sub
    End If
    If (CurrentRecord < 1) Then
        Beep
        MsgBox "Er zijn geen panden in dit archief gevonden waar het adres begint met deze letter.", vbOKOnly, "Geen records gevonden"
        [Forms]![frm gesorteerd op adres]![PlaatsSelectie] = ""
        DoCmd.ShowAllRecords
        adresfilters = 30
    End If
End Sub


misschien dat je hier iets aan hebt. Ik kan me namelijk niet voorstellen dat mensen via een virtueel toetsenbord veel zullen typen.

  • Battle Bunny
  • Registratie: Oktober 2001
  • Laatst online: 02-02 21:41
sweetdude schreef op maandag 04 juli 2005 @ 22:04:
ik gebruik deze procedure om in een archief systeem de eerste letter van een straat te zoeken
Wat het doet zie ik zo snel niet, maar WAT een vunzige code!

[ Voor 4% gewijzigd door Battle Bunny op 04-07-2005 22:30 ]


  • sweetdude
  • Registratie: April 2002
  • Laatst online: 05-04 15:11
Wat het doet is een filter toepassen als je op een letter klikt. Op die manier kun je makkelijker een tekst string in een lijst zoeken in dit geval dus een straatnaam.

De code kan vunzig zijn maar ze werkt en daarbij is het een kopie van de code die microsoft in noordenwind gebruikt. dus klachten aub niet bij mij maar bij Bil G.

Als je trouwens een betere oplossing hebt mag je deze ook gerust kenbaar maken. Ik ben nooit beroerd om goede verbeteringen ergens door te voeren en om iets te leren. :>