Miten saisin tarkistettua sisältääkö teksti kenttä list löytyvää tekstiä?
tämä toimii jo melkein:
Dim Sanat As String Sanat = Form3.List1.Columns For i = 1 To form3.list1.listcount If Instr(text1.text,sanat) then 'tähän tulee tapahtumat End If next
Tuo toimii kyllä jos tekstikenttä sisältää pelkästään sanan
joka löytyy list1:stä (esim. moi!) mutta jos sanan perässä tai sitä ennen on jotain muutakin niin sitten ei toimi (esim. abcmoi!)
Dim Sana As Integer, i As Integer Dim Teksti As String Teksti = Text1.Text For i = 0 To Me.List1.ListCount - 1 If InStr(1, Teksti, Me.List1.List(i)) Then Sana = Sana + 1 Next i MsgBox "Sanoja löytyi:" & Sana
edit: Sisennys
ei näyttäisi tuokaan toimivan ihan täydellisesti...
Esim jos list1 lukee "tätäsanaaeilöydy" niin tuo koodinpätkä ei löydä sitä seuraavan laisesta merkkijonosta: ".asdasd.tätäsanaaeilöydykahs.djh"
Kyllä tuo InStr-funktio ainakin löytää sen. Mutta jos jokin sana esiintyy tekstissä useita kertoja löytyy vain se ensimmäinen.
Vaihtaa If-rakenne Do-Loopiksi.
j=1 Do While InStr(j, Teksti, Me.List1.List(i)) Sana = Sana + 1 j = InStr(j, Teksti, Me.List1.List(i)) + 1 Loop
Kyse on kirjoitusvirheestä, mikäli InStr ei muka löydä merkkijonosta pätkää, jota se hakee.
sain toimimaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.