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 :-)
:-)