[ FOX028 @ 11.07.2011. 13:43 ] @
Imam problem kada vrsim pretragu po glumcu ali samo kod onih u cijem imenu ima apostrov (O'Hara), ja sam pokusavao sam nekako to da resim ali mi ne ide. Ako neko bude mogao to da mi resi bio bih mu zahvalan. Samo bih molio ako je moguce da se ne menja struktura pretrage.
[ make_lele @ 11.07.2011. 13:57 ] @
Probaj sa \'
[ FOX028 @ 11.07.2011. 15:09 ] @
Ja bi da ostane samo apostrof ako moze.
[ izonic @ 11.07.2011. 18:49 ] @
Code:
Private Sub TraziGlumac_AfterUpdate()
    Dim stLinkCriteria As String
    Dim ImaNema As Integer
    Dim Kriterija
    Dim Pozicija As Integer
    
    Me.TraziFilm = ""
    Kriterija = Me.TraziGlumac
Start:
    Pozicija = InStr(1, Kriterija, "'")
    If Pozicija > 0 Then
    Kriterija = Left(Kriterija, Pozicija - 1) & "?" & Mid(Kriterija, Pozicija + 1)
    GoTo Start
    End If
    stLinkCriteria = "((QFilm.Glumac Like '*" & Kriterija & "*'))"
    
    MsgBox stLinkCriteria
    ImaNema = DCount("[Glumac]", "QFilm", stLinkCriteria)
    If ImaNema = 0 Then
        MsgBox "Nema tog glumca", vbCritical, "Poruka"
        Exit Sub
    Else
        Me.Filter = stLinkCriteria
        Me.Uslov.Requery
        DoCmd.ApplyFilter , stLinkCriteria
        Me.ObrisiUslov.Visible = True
        
    End If

End Sub

[ Zidar @ 12.07.2011. 14:05 ] @
Svi zaboravili da se moze koristiti i " umesto '

I svi smo zaboravili da se znakovi ' ili " u stringu z apretrazivanje zamenjuju dupliranim znakovima ' postaje '' a " postaje ""

Evo kako radi, prva iteracija. Upotrebimo " za string delimiter i onda ce ' da prodje glatko.
Code:

Private Sub TraziGlumac_AfterUpdate()
    Dim stLinkCriteria As String
    Dim ImaNema As Integer
    Me.TraziFilm = ""
    stLinkCriteria = "((QFilm.Glumac Like ""*" & Me!TraziGlumac & "*""))"
    
    MsgBox stLinkCriteria
    ImaNema = DCount("[Glumac]", "QFilm", stLinkCriteria)
    If ImaNema = 0 Then
        MsgBox "Nema tog glumca", vbCritical, "Poruka"
        Exit Sub
    Else
        Me.Filter = stLinkCriteria
        Me.Uslov.Requery
        DoCmd.ApplyFilter , stLinkCriteria
        Me.ObrisiUslov.Visible = True
        
    End If

End Sub


Kljuc je ovde:
stLinkCriteria = "((QFilm.Glumac Like ""*" & Me!TraziGlumac & "*""))"

"" ispred * se prevodi u "*
"' posle * se prevodi u *"

medjutim ovo nece proci ako je me.TraziGlumac na primer o"hara umesto o'hara. Zato je bolje uraditi ovako:

stLinkCriteria = "((QFilm.Glumac Like ""*" & Replace(Me!TraziGlumac, Chr(34), Chr(34) & Chr(34)) & "*""))"

Provereno, radi. Dakle, ovako:
Code:

Private Sub TraziGlumac_AfterUpdate()
    Dim stLinkCriteria As String
    Dim ImaNema As Integer
    Me.TraziFilm = ""
'    stLinkCriteria = "((QFilm.Glumac Like ""*" & Me!TraziGlumac & "*""))"
    stLinkCriteria = "((QFilm.Glumac Like ""*" & Replace(Me!TraziGlumac, Chr(34), Chr(34) & Chr(34)) & "*""))"

    
    MsgBox stLinkCriteria
    ImaNema = DCount("[Glumac]", "QFilm", stLinkCriteria)
    If ImaNema = 0 Then
        MsgBox "Nema tog glumca", vbCritical, "Poruka"
        Exit Sub
    Else
        Me.Filter = stLinkCriteria
        Me.Uslov.Requery
        DoCmd.ApplyFilter , stLinkCriteria
        Me.ObrisiUslov.Visible = True
        
    End If

End Sub


Ostarilo se ali nije s ezaboravilo programirnje :-)

:-)