Probleem met LIKE-constructie in SQL-string

Status
Niet open voor verdere reacties.

inomart

Gebruiker
Lid geworden
12 sep 2011
Berichten
12
Hoi

Ik heb een tabel met adressen, bijvoorbeeld

Code:
Naam                   Straat                    Gemeente          Postzegel
Frank Anders         Torenstraat 5          Antwerpen              Ja
Niels Peeters         Valkstraat 23 bus 1   Brussel                   Ja
John Geerts           Janstraat 5             Antwerpen              Nee
Erik Verbeeck         Kolkstraat 99          Antwerpen              Nee
Louis Luyten          Vaartstraat 12         Antwerpen              Ja
Nora Renders         Asstraat 2 bus 1C    Antwerpen              Nee
Rudy Nuyts          Paus Leo IX 13           Antwerpen             Nee
Maria Luyckx         R Neerplein 5A         Antwerpen             Ja
Flor Geeraerts       Italiëlei 1                  Brussel                Ja
...

Daarnaast heb ik een tabel Straten, met daarin bijvoorbeeld
Code:
Janstraat
Kolkstraat
Asstraat
Paus Leo IX
...

Nadat ik in een formulier een record heb toegevoegd, dient er een VBA-code te lopen. Deze code gaat eerst na of de gemeente Antwerpen is. Indien wel, dan zou er gecontroleerd moeten worden of de ingegeven straat voorkomt in de tabel straten. Als dat is, dan dient het veld Postzegel sowieso de waarde Nee te bevatten.

Het probleem is dat in de tabel adressen het veld straat ook het huisnummer bevat terwijl de tabel Straten die niet heeft.

De code die ik momenteel heb, is
Code:
if Me.txtGemeente = "antwerpen" then
strSQL = "SELECT tblStraten.Straat FROM tblStraten WHERE (((tblStraten.Straat) Like '*" & Me.Straat & "*'));"
set rsStraten = currentdb.openrecordset(strsql,dbopendynaset)
if rsstraten > 0 then
  me.postzegel = true
end if
...

Dit heeft echter tot resultaat dat de variabele strSQL volgende waarde krijgt:
SELECT tblStraten.Straat FROM tblStraten WHERE (((tblStraten.Straat) Like '*Janstraat 5*'));

En dat geeft uiteraard geen resultaat.

Iemand een idee hoe ik dit kan oplossen? Ik had al gedacht om de waarde van Me.txtStraat programmatorisch in te korten (vb: afkappen na eerste spatie, maar sommige straten bestaan uit meerdere woorden, soms staat er na het huisnummer nog een letter, of een busnummer, ...). Het veld "straat" in de tabel adressen opsplitsen in 2 velden (waarbij het huisnummer dus in een nieuw veld komt) is geen optie.

Groeten
Ino
 
Laatst bewerkt:
Ik heb het opgelost via een ietwat andere code
Code:
Private Sub Form_BeforeUpdate(Cancel As Integer)

Dim rsStraten As Recordset
Dim strSQL as String
Dim blnGevonden as Boolean

blnGevonden = False
If Me.Gemeente = "antwerpen" Then
    strSQL = "SELECT tblStraten.Straat FROM tblStraten"
    Set rsStraten = CurrentDb.OpenRecordset(strSQL, dbopendynaset)
    While rsStraten.EOF = False and blnGevonden = False
        If InStr(1, LCase(Me.Straat), rsStraten!Straat) > 0 Then
            Me.Postzegel = True
            blnGevonden = True
        End If
        rsStraten.MoveNext
    Wend
End If
End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan